Einzelnen Beitrag anzeigen

Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#14

Re: Mitkriegen wann eine andere Anwendung geschlossen wird?

  Alt 4. Aug 2005, 12:08
Zitat von phlux:
Mein Programm soll mit kriegen, wann eine x-beliebige von mir festgelegte Anwendung geschlossen wird, weiß jemand wie ich das realisieren kann?
Edit: Das einzige was mir/der Anwendung bekannt ist, ist ein Handle auf ein Fenster...
Da gibt es viele Lösungswege. Wenn diese Anwendung nur aus einem Fenster besteht, könntest du dir mit GetWindowThreadProcessId die ProcessId und mit OpenProcess den ProcessHandle holen. Anschließend wartest du mit WaitForSingleObject bis der Prozess beendet worden ist. Das Ganze könntest du dann in einen Thread auslagern.

Delphi-Quellcode:
var
  AppHWnd: HWND;
  ProcessId: DWORD;
  ProcessHandle: THandle;
begin

  {...}

  if IsWindow(AppHWnd) then
  begin
    if GetWindowThreadProcessId(AppHWnd, @ProcessId) <> 0 then
    begin
      ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
      if ProcessHandle <> 0 then
      begin
        WaitForSingleObject(ProcessHandle, INFINITE);
        // Prozess wurde beendet
        CloseHandle(ProcessHandle);
      end;
    end;
  end;

  {...}

end;
AppHWnd ist in diesem Fall das Fensterhandle der Fremdanwendung.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat