Форум: "WinAPI";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
ВнизКак запретить запуск второй копии программы? Найти похожие ветки
← →
Jiurasdfgfr (2004-05-20 14:58) [0]сабж.
← →
Алхимик © (2004-05-20 15:16) [1]Вариантов - туева хуча.
Например, при старте программы искать окно с таким же заголовком.
Если нашёл - считать что программа уже запущена и преравать её выполнение.
см местный FAQ.
← →
Ega23 © (2004-05-20 15:16) [2]ss:=ExtractFileName(paramstr(0) );
hnd:=CreateMutex(nil, false, PChar(ss) );
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Beep(100,200); //MessageBeep ->in WinProcs
bo:=ReleaseMutex(hnd);
Halt(1);
end;
Тут правда фишка, что если программу переименовать, то запустить можно. Но это сознательно было сделано.
← →
WebErr © (2004-05-20 16:36) [3]
var
P: PChar;
S: String;
W: HWND;
...
try
GetMem(P, 256);
except
ShowMessage("!");
Exit;
end;
GetClassName(Handle, P, 255);
S := P;
W := FindWindow(0, 0);
while W <> 0 do
begin
W := GetNextWindow(W, GW_HWNDNEXT);
GetClassName(W, P, 255);
if StrComp(PChar(S), P) = 0 then
ShowMessage("Ура!");
end;
FreeMem(P);
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.039 c