怎么监控程序的启动、关闭!也就是截获应用程序的启动、关闭动作!?
解决方案 »
- Delphi读取写入Dat文件问题!
- 用delphi7连接远程的oracle10g数据库问题
- 求数据库程序设计方案
- delphi 接口程序接收数据是50HZ的,怎么实时处理他们?
- 一个非常好的企业管理软件供需平台www.chinaident.com
- 动态自动生成控件后,触发事件能不能动态?比如将触发事件写在一个ini文件中,动态调用
- 遇到这样的问题,你怎么解决?!
- SHUDPSocket1掉包问题 不知道该如何解决!
- 一个N简单的问题,有人回答对立刻结贴 -关于Delphi的数据类型和API函数的匹配
- 后台数据库用sql server2000,我到底应该用bde还是用ado?为什么?
- 序列号与校验码
- 有关BDE的一个问题
procedure TForm1.Button1Click(Sender: TObject);
var lppe: TProcessEntry32;
found : boolean;
Hand : THandle;
begin
Hand := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
found := Process32First(Hand,lppe);
while found do
begin
ListBox1.Items.Add(StrPas(lppe.szExeFile));
found := Process32Next(Hand,lppe);
end;
end;
如果该程序是自己写得话,可以向指定监控窗口发送消息。或者输出文件。如果不是的话,可以如cg1120(代码最优化-§雪是冷的,人是暖的§) 。
同时,是否可以考虑hook监控消息。
是不是自己写的程序,是的话好办,findwindow,
不是的话,你也得知道窗口类名或者title, 也得用findwindow
的到handle
HOOKPROC lpfn, // address of hook procedure
HINSTANCE hMod, // handle of application instance
DWORD dwThreadId // identity of thread to install hook for
);
在 lnfn中处理,这两个消息
HSHELL_WINDOWCREATED
HSHELL_WINDOWDESTROYED
使用
GetModuleFileName(GetModulehandle, buf, sizeOf(buf)-1)
获得程序名字