ich hab ma sowas am beispiel von notepad gemacht.
vll hilft dir das ja weiter.
versucht erst das fenster per WM_CLOSE zu schliessen und
wenn das nach nem gewissen timeout nich geklappt hat per
TerminateProcess.
Delphi-Quellcode:
var
hWnd, hProcess: THandle;
DWResult, PID: Cardinal;
begin
hWnd := FindWindow('Notepad', nil);
if hWnd <> 0 then
begin
SendMessageTimeout(hWnd, WM_CLOSE, 0, 0,
SMTO_ABORTIFHUNG or SMTO_NORMAL, 6000, DWResult);
if IsWindow(hWnd) then
begin
GetWindowThreadProcessId(hWnd, PID);
hProcess := OpenProcess(PROCESS_TERMINATE, False, PID);
if hProcess <> 0 then
begin
TerminateProcess(hProcess, 0);
CloseHandle(hProcess);
end;
end;
end;
end;