HANDLE hSnapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 ProcEntry;
ProcEntry.dwSize = sizeof( ProcEntry);
bool Running = false;
DWORD CurrentProc = GetCurrentProcessId();
if ( Process32First( hSnapshot, &ProcEntry))
do
{
if ( CurrentProc! = ProcEntry.th32ProcessID &
strcmpi( ProcEntry.szExeFile,
_argv[0])
== 0)
{
Running=true;
break;
}
}
while( Process32Next( hSnapshot, &ProcEntry));
CloseHandle( hSnapshot);
if ( Running)
return 1;
try
{
Application->Initialize();
//..........
Запрет запуска второй копии программы
легких путей не ищем?
у меня моежт быть запушенно на терминали много копий моего приложения, но нужно сделать так что для каждого пользователя не больше одной копии!
Цитата: Tramp
Про данный способ знаю,
у меня моежт быть запушенно на терминали много копий моего приложения, но нужно сделать так что для каждого пользователя не больше одной копии!
у меня моежт быть запушенно на терминали много копий моего приложения, но нужно сделать так что для каждого пользователя не больше одной копии!
формируй имя мутекса из имени пользователя GetUserName + какой нидь ключ (уникальный для твоей проги)