hallo,
ich habe eine routine, die per createmutex testet, ob ein programm läuft und wenn nicht, dann soll es gestartet werden:
Delphi-Quellcode:
const
cMutexID = '
MoppleMapper';
var
Mutex: THandle;
HAPPLICATION: HWND;
begin
Mutex := CreateMutex(
nil, True, cMutexID);
if (
Mutex <> 0)
and (GetLastError = 0)
then
begin
WinExec(PChar(ExtractFilePath(Application.ExeName) + '
moppl_map.exe'), SW_SHOW);
Mutex := CreateMutex(
nil, True, cMutexID);
end;
{HAPPLICATION := 0;
repeat
HAPPLICATION := FindWindowEx(0,HAPPLICATION, 'TApplication', PChar('MoppleMapper'));
until HAPPLICATION <> Application.Handle;}
end;
wenn ich das jez ausführe und das programm lief schon, iss alles super, WENN das programm allerdings vorher noch nicht lief und ich die procedure ausführe, macht der cursor für ca. 5 sec nur einen auf sanduhr und dann gehts weiter.
warum? muss ich den
mutex dann wieder löschen? wie?
haha, ok, hat sich erledigt, CloseHandle(mutex), was sonst ... sorry, kann gelöscht werden ..
mfg, eyeless