Starcraft II membatasi saya untuk menjalankan banyak instance, tetapi jika saya menjalankan instance kedua sandbox di Sandboxie , ia berfungsi. Apa yang menyebabkan ini?
Bagaimana saya bisa meniru perilaku ini untuk permainan saya sendiri?
software-engineering
Brandon
sumber
sumber
Saya merekomendasikan pendekatan mutex, tetapi:
Metode lain yang sering digunakan adalah hanya memeriksa apakah proses lain dengan nama yang sama sedang berjalan.
Keuntungannya adalah sangat mudah - Anda tidak perlu khawatir tentang izin file atau tahu apa itu mutex. Kekurangannya adalah, Anda akan mendapatkan positif palsu jika berbeda program yang disebut
starcraft2.exe
berjalan pada mesin.sumber
Jika Anda menggunakan C ++ dan Windows API, salah satu cara yang dapat Anda lakukan adalah menggunakan
FindWindow
, tempat Anda dapat melewatkan parameter seperti nama kelas dan / atau nama jendela. Kemudian jika Anda menemukan kecocokan, keluar saja dari program Anda bahkan sebelum Anda memuat atau membuat jendela.sumber