请问delphi利用sendmessage(hwndclose,wm_close,0,0);怎么关闭有关闭提示的窗体!

2025-01-07 19:40:28
推荐回答(3个)
回答1:

找到提示窗口,发送个点击确定的事件,这样比直接杀掉进程要好些,可以避免被关闭的窗口因为非正常退出而出问题。

回答2:

是想直接关闭其它程序吧?sendmessage不行,要找到程序进程ID,直接关闭进程才能没有提示。

回答3:

uses TLHelp32;

function KillTask(ExeFileName: string): Integer;
const
PROCESS_TERMINATE = $0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
Result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

while Integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(
OpenProcess(PROCESS_TERMINATE,
BOOL(0),
FProcessEntry32.th32ProcessID),
0));
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;

用这个办法吧,直接杀进程!