如何根据程序文件名获取该程序的句柄(如果当前正在系统中运行)?WINXP 100分求解决方法~~~~~~~~~~~~~~~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 use TlHelp32,例子:取excel.exe的进程id话 AppForceExit('Excel.exe');function AppForceExit(AppName: string):HWND;var lppe: TProcessEntry32; ssHandle: THandle; AppFound: Boolean; Wnd: HWND;begin ssHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0); lppe.dwSize := SizeOf(lppe); AppFound := Process32First(sshandle, lppe); wnd:=-1; while AppFound do begin if UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AppName) then begin Wnd := OpenProcess(PROCESS_ALL_ACCESS, true, lppe.th32ProcessID); break; end; AppFound := Process32Next(ssHandle, lppe); end; result:=wnd;end; 没啥好办法,枚举进程的办法很多,用EnumProcesses也可以 to chtlovezj:返回的不是进程句柄吧,我用FindWindow返回的句柄和你的这个函数返回的不一样,而且操作也无效~ 我返回的是进程句柄,你FindWindow返回窗体句柄,怎么会一样 if AppForceExit(‘excel.exe’)<>-1 then TerminateProcess(AppForceExit(‘excel.exe’), 0);//关闭excel.exe,你想怎么操作? 那是窗体句柄,用FindWindow找到窗体,sendmessage发送程序句柄多指程序对应的进程句柄有的窗体不接受你的消息,例如新版的qq 用FINDWINDOW不行,进程主窗体CAPTION不断在变~~~~~~~~~~ 根据类找,象qq的是#32770,deliphi自己创建的都是Tapplication,也可以EnumWindows枚举窗体 怎样获取三个月前的日期 在提交数据到数据库之前,如何动态改变dbgrid某一列字段所有的值? SQL语句的问题:如何把符合的记录更新到一个字段中 令人失望的Delphi 2006!!!(如何安装ActiveX) 除了DELPHI,还用什么? 纯winsock实现的验证发信的问题。 form的free问题 DBGRID问题? 问一个DBGrid多表头的问题 delphi调用dll delphi简单问题求助~ 能否向函数或者过程传递控件??
AppForceExit('Excel.exe');function AppForceExit(AppName: string):HWND;
var lppe: TProcessEntry32;
ssHandle: THandle;
AppFound: Boolean;
Wnd: HWND;
begin
ssHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
lppe.dwSize := SizeOf(lppe);
AppFound := Process32First(sshandle, lppe);
wnd:=-1;
while AppFound do
begin
if UpperCase(ExtractFileName(lppe.szExeFile))=UpperCase(AppName) then
begin
Wnd := OpenProcess(PROCESS_ALL_ACCESS, true, lppe.th32ProcessID);
break;
end;
AppFound := Process32Next(ssHandle, lppe);
end;
result:=wnd;
end;
枚举进程的办法很多,用EnumProcesses也可以
TerminateProcess(AppForceExit(‘excel.exe’), 0);//关闭excel.exe,你想怎么操作?
程序句柄多指程序对应的进程句柄
有的窗体不接受你的消息,例如新版的qq