我的应用程序需要监控系统上所有正在运行的应用程序。有没有一种方法可以在每个应用程序exe退出时得到通知?
我找到的方法如下:
1)使用PSAPI函数以频繁的间隔获取运行中exes的列表。在每次轮询时,与之前的列表进行比较,找出已退出的应用程序/进程。 缺点:需要不断轮询,会占用CPU时间。
2)设置WM_CLOSE消息的全局钩子:使用此方法,当任何应用程序通过标题栏上的关闭按钮关闭时,我将能够收到通知。
缺点: (-)并非所有应用程序都会生成WM_CLOSE消息(例如:Total Video Player Exe) (-)如果应用程序是通过“退出”菜单或按钮(例如:文件->退出)关闭的,则无法捕获该消息。
是否还有其他更好的方法我可能忽略了?请给予建议。
我找到的方法如下:
1)使用PSAPI函数以频繁的间隔获取运行中exes的列表。在每次轮询时,与之前的列表进行比较,找出已退出的应用程序/进程。 缺点:需要不断轮询,会占用CPU时间。
2)设置WM_CLOSE消息的全局钩子:使用此方法,当任何应用程序通过标题栏上的关闭按钮关闭时,我将能够收到通知。
缺点: (-)并非所有应用程序都会生成WM_CLOSE消息(例如:Total Video Player Exe) (-)如果应用程序是通过“退出”菜单或按钮(例如:文件->退出)关闭的,则无法捕获该消息。
是否还有其他更好的方法我可能忽略了?请给予建议。