Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Нужно готовое решения проверки "запущен ли уже бот на этом пк"
code (Отобразить)CODE:#define MUTEX_ALL_ACCESS 2031617
external(INT, "CreateMutex", "CreateMutexA", "Kernel32.dll");
external(INT, "OpenMutex", "OpenMutexA", "Kernel32.dll");
external(INT, "ReleaseMutex", "ReleaseMutex", "Kernel32.dll");
external(INT, "CloseHandle", "CloseHandle", "Kernel32.dll");
// при запуске бота создаётся мьютекс
int my_mutex=Mutex("any_name_mutex"); // в скобках любое имя мьютекса
// если он уже существует, значит программа запущена и копия будет закрыта
// дальше нужный код
createdialog(0);
showdialog(0, "Диалог", 300, 300, 300, 300, 4, 1);
loop()sleep(10);
function getmessage(0, WM_CLOSE)
{
// при закрытии бота нужно освобождать мьютекс
ReleaseMutex(my_mutex);
CloseHandle(my_mutex);
close();
}
function Mutex(string s)
{
if(OpenMutex(MUTEX_ALL_ACCESS, 0, s))close(); // если мьютекс существует, закрыть программу
return CreateMutex(0, 1, s);
}
Цитата: "запущен ли бот на vmware"
Есть пример для VirtualBox https://kibor-bot.com/forum/topi...08285#1590708285, для других принцип тот же, проверять наличие запущенных процессов. Но это всё прокатит для не опытных пользователей, т. к. всё можно переименовать или подменить. |