我想做一个全局系统钩子,监控所有运行着的程序,要实时的。比如不想让窗体名为“AAA”的程序运行起来的话。如果钩子发现名为“AAA”的窗体启动了,那么就通过窗体名“AAA”返回这个窗体的句柄,然后SendMessage(AAA的handle,WM_CLOSE)这样可以吗?
钩子我正在做,多方搜索没有发现比较好的资料。
我只想拦截窗体创建消息和当前窗体激活消息该如何设置钩子类型?
都说全局钩子必须采用DLL注入式,我自己试了好多遍不是机器卡的没法用就是出地址错误。希望手头有DLL注入式钩子实例的高手们能把代码贴出来
钩子我正在做,多方搜索没有发现比较好的资料。
我只想拦截窗体创建消息和当前窗体激活消息该如何设置钩子类型?
都说全局钩子必须采用DLL注入式,我自己试了好多遍不是机器卡的没法用就是出地址错误。希望手头有DLL注入式钩子实例的高手们能把代码贴出来
我想即使是用楼上两位所说的FindWindow和遍历系统标题来做,必须放到循环中或者Timer中吧?
并且Findwindow只能通过完全准全的窗体名来返回句柄,我不知道具体的窗体名,只知道其中的几个字。所以用Findwindow好像不能解决。
关键我还是想学习DLL注入式钩子的知识,请各位高手帮忙,谁有好的资料或者例子请至[email protected]或者贴出来,分不够我可以在加200!
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 然后杀进程