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.