![]() |
Prozess killen, wenn nur window handle bekannt?
Hallo,
die Frage steht in Zusammenhang mit dem folgnden Thread (der nicht extra gelesen werden muss), hat aber mMn nix mit VBA zu tun, deswegen stell ich sie separat. ![]() Ich hab mir einen Window-Handle "erobert". Wie kille ich den dazugehörigen Prozess? Dazu noch die Info: Der Prozess ist eine (abgestürzte) Excel Instanz. Es sind aber u.U. noch weitere Instanzen und somit Prozesse mit Namen "Excel" vorhanden, die aber nicht aus versehen gekillt werden sollen, es muss der sein, zu dem der windows handle gehört. Edit: Bevor einer fragt. Habe die Sufu benutzt, aber da geht es immer um Fenstertitel (kann ich aus o.g. Gründen nicht benutzen) und Prozess-Handle oder -ID und das ist doch nicht dasselbe wie der window handle, oder? |
AW: Prozess killen, wenn nur window handle bekannt?
GetWindowThreadProcessId, TerminateProcess bzw. SendMessage + WM_CLOSE oder so einfach mal googlen
|
AW: Prozess killen, wenn nur window handle bekannt?
Zitat:
Code:
const
PROCESS_MURDER = $0001; // Target = Window Handle, nicht Process Handle (wie gewünscht)! procedure KillProcess(Target: Hwnd); var pid: Cardinal; ProcessHandle: THandle; begin GetWindowThreadProcessId(Target, @pid); ProcessHandle := OpenProcess(PROCESS_MURDER, FALSE, pid); TerminateProcess(ProcessHandle, 4); end; |
AW: Prozess killen, wenn nur window handle bekannt?
Ahh, danke!:thumb:
GetWindowThreadProcessId ist der Zwischenschritt der mir fehlte (Neben der implizierten Info das windo handle <> process ID). Kann ich Montag gleich wieder durchstarten :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz