现在用Delphi的人是不是越来越少了啊,提问和回复的人都少了。我想定时运行和定时关闭我服务器上的某几个程序,我在网上去搜索了一下方法,发现运行可以使用ShellExecute或WinExec函数来打开运行某程序。而关闭某个程序呢,都是建议使用SendMessage(FindWindow("应用程序标题"),CM_CLOSE,0,0)来关闭这个程序。
因为我想把程序做得通用点,想控制某个程序时,先将它们加入到列表框中,然后再来自动运行和关闭它们,用SendMessage函数时必须先用FindWindow函数来根据应用程序的标题来确定程序的Handle,但由于程序想通用点,我根本不知道应用程序的Title是什么啊,怎样才能获得程序的Title呢,如果程序没有Title又怎么办呢? 大家来讨论一下怎样才是最好的实现办法啊。
因为我想把程序做得通用点,想控制某个程序时,先将它们加入到列表框中,然后再来自动运行和关闭它们,用SendMessage函数时必须先用FindWindow函数来根据应用程序的标题来确定程序的Handle,但由于程序想通用点,我根本不知道应用程序的Title是什么啊,怎样才能获得程序的Title呢,如果程序没有Title又怎么办呢? 大家来讨论一下怎样才是最好的实现办法啊。
AppForceExit('Excel.exe');procedure AppForceExit(AppName: string);
var lppe: TProcessEntry32;
ssHandle: THandle;
AppFound: Boolean;
Wnd: HWND;
begin
ssHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
lppe.dwSize := SizeOf(lppe);
AppFound := Process32First(sshandle, lppe);
while AppFound do
begin
if UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AppName) then
begin
Wnd := OpenProcess(PROCESS_ALL_ACCESS, true, lppe.th32ProcessID);
TerminateProcess(Wnd, 0);
end;
AppFound := Process32Next(ssHandle, lppe);
end;
end;