首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教如何检索当前系统所有运行着的程序,然后根据标题内容选择性的关闭程序

2012-03-25 
请问怎么检索当前系统所有运行着的程序,然后根据标题内容选择性的关闭程序?我想做一个全局系统钩子,监控所

请问怎么检索当前系统所有运行着的程序,然后根据标题内容选择性的关闭程序?
我想做一个全局系统钩子,监控所有运行着的程序,要实时的。比如不想让窗体名为“AAA”的程序运行起来的话。如果钩子发现名为“AAA”的窗体启动了,那么就通过窗体名“AAA”返回这个窗体的句柄,然后SendMessage(AAA的handle,WM_CLOSE)这样可以吗?
钩子我正在做,多方搜索没有发现比较好的资料。
我只想拦截窗体创建消息和当前窗体激活消息该如何设置钩子类型?
都说全局钩子必须采用DLL注入式,我自己试了好多遍不是机器卡的没法用就是出地址错误。希望手头有DLL注入式钩子实例的高手们能把代码贴出来

[解决办法]
很简单,利用findwindow这个系统api找窗体,发现后然后SendMessage(AAA的handle,WM_CLOSE)就ok了
[解决办法]
呵呵,把钩子写在DLL里是很容易出现内存地址错误的,楼主要小心了。。

[解决办法]
遍历系统窗口标题就行了吧.不需要HOOK
[解决办法]
如果采用服务的方式呢?这个到是没试过
[解决办法]
uses

PsAPI,

function getCurrentProcessExeName: string;
var
i: integer;
begin
SetLength(result, MAX_PATH);
i := GetModuleBaseName(GetCurrentProcess, 0, pchar(result), MAX_PATH);
SetLength(result, i);
end;

function getCurrentDllName: string;
var
FN: array[0..255] of char;
begin
SetString(result, FN, GetModuleFileName(hInstance, FN, SizeOf(FN)));
end;


你获得 当前的 运行的 exe 的名字 (函数 在上面)
然后 判断 然后 GetCurrentProcess 然后杀进程

热点排行