Starcraft II запрещает мне запускать несколько экземпляров, но если я запускаю в песочнице второй экземпляр , он работает. Что может объяснить это?
Как я могу повторить это поведение для моих собственных игр?
software-engineering
Brandon
источник
источник
Я рекомендую мьютексный подход, но:
Другой часто используемый метод - просто проверка, запущен ли другой процесс с тем же именем.
Преимущество в том, что это смехотворно просто - вам не нужно беспокоиться о правах доступа к файлам или знать, что такое мьютекс. Недостатком является то, что вы получите ложноположительный результат, если на компьютере запущена другая программа с именем
starcraft2.exe
.источник
Если вы используете C ++ и Windows API, вы можете использовать один из способов
FindWindow
, где вы можете передавать параметры, такие как имя класса и / или имя окна. Затем, если вы найдете совпадение, просто выйдите из вашей программы, прежде чем вы даже загрузите или создадите окно.источник