Einzelnen Beitrag anzeigen

eyeless

Registriert seit: 12. Aug 2005
49 Beiträge
 
#1

shellexecute nach createmutex

  Alt 16. Aug 2005, 13:46
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
  Mit Zitat antworten Zitat