Starcraft II ogranicza mnie do uruchamiania wielu instancji, ale jeśli uruchomię drugą instancję w piaskownicy w Sandboxie , to zadziała . Co może to tłumaczyć?
Jak mogę powtórzyć to zachowanie dla własnych gier?
software-engineering
Brandon
źródło
źródło
Polecam podejście mutex, ale:
Inną często używaną metodą jest po prostu sprawdzenie, czy działa inny proces o tej samej nazwie.
Zaletą jest to, że jest to absurdalnie łatwe - nie musisz martwić się o uprawnienia do plików ani wiedzieć, czym jest muteks. Minusem jest to, że otrzymasz fałszywie dodatni, jeśli na komputerze działa inny program o nazwie
starcraft2.exe
.źródło
Jeśli używasz C ++ i Windows API, jednym ze sposobów jest użycie
FindWindow
, w którym możesz przekazać parametry takie jak nazwa klasy i / lub nazwa okna. Następnie, jeśli znajdziesz dopasowanie, po prostu zamknij program, zanim jeszcze załadujesz lub utworzysz okno.źródło