var handle:THANDLE; ... BEGIN HANDLE:= findwindow(a,b)//a为类名,b为窗口标题 ,有一个就可以 if handle 〉0 then sendmessage(handle,wm_close,0,0);//sendmessage to //close the window ; end;
请问没有标题的窗体应用 怎么关闭(比如a.exe 就是一个flash form 没有标题caption )?
写了个函数,不知对不对.uses TlHelp32;{$R *.dfm}procedure CloseApplication(const ApplicationName: string; IsAll: Boolean = False); var hSnapProcess: THandle; ProcessEntry32: TProcessEntry32; bRet: BOOL; hProcess: THandle; begin hSnapProcess := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); ProcessEntry32.dwSize := SizeOf(TProcessEntry32); if Process32First(hSnapProcess, ProcessEntry32) then repeat if ProcessEntry32.szExeFile = ApplicationName then begin hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessEntry32.th32ProcessID); TerminateProcess(hProcess, 0); if not IsAll then break; end; until not Process32Next(hSnapProcess, ProcessEntry32); CloseHandle(hSnapProcess); end;
to:loving(老鹰) WM_QUIT 需要引用什么单元? messages
WindowCaption是他的程序的窗体名(就向你的程序Form的Caption一样) XXHwnd:HWND; begin XXHwnd:=FindWindow(nil,pchar(WindowCaption)); if XXHwnd<>0 then begin //add your code here end; end; 最好把这段程序加到Timer的OnTimer事件中,可以实时监控
handle:THANDLE;
...
BEGIN
HANDLE:= findwindow(a,b)//a为类名,b为窗口标题 ,有一个就可以
if handle 〉0 then
sendmessage(handle,wm_close,0,0);//sendmessage to
//close the window ;
end;
ExeHandle是你的应用程序的句柄
可以通过FindWindow(nil,WindowCaption)来得到
var
hSnapProcess: THandle;
ProcessEntry32: TProcessEntry32;
bRet: BOOL;
hProcess: THandle;
begin
hSnapProcess := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
ProcessEntry32.dwSize := SizeOf(TProcessEntry32);
if Process32First(hSnapProcess, ProcessEntry32) then
repeat
if ProcessEntry32.szExeFile = ApplicationName then
begin
hProcess := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessEntry32.th32ProcessID);
TerminateProcess(hProcess, 0);
if not IsAll then break;
end;
until not Process32Next(hSnapProcess, ProcessEntry32); CloseHandle(hSnapProcess);
end;
WM_QUIT 需要引用什么单元?
messages
XXHwnd:HWND;
begin
XXHwnd:=FindWindow(nil,pchar(WindowCaption));
if XXHwnd<>0 then
begin
//add your code here
end;
end;
最好把这段程序加到Timer的OnTimer事件中,可以实时监控