新年代 http://www.onefeel.net/bbs

湖南一师校友论坛是一师学子的网上家园。
共1 条记录, 每页显示 10 条, 页签: [1]

1楼
Coder 发表于:2004/3/29 11:57:57
函数声明: Declare Function RegisterShellHook Lib "Shell32" Alias "#181" _ (ByVal hwnd As Long, ByVal nAction As Long) As Long 功能: 在整个 Windows系统范围内感知到其它窗体的创建、激活或关闭等消息。 参数说明: hwnd —— 调用此函数的窗口句柄 nAction —— 所进行操作的代码。其设置值有: HSHELL_WINDOWCREATED = 1 ' 系统级的窗体被创建 HSHELL_WINDOWDESTROYED = 2 ' 系统级的窗体即将被关闭 HSHELL_ACTIVATESHELLWINDOW = 3 ' SHELL 的主窗体将被激活 HSHELL_WINDOWACTIVATED = 4 ' 系统级的窗体被激活 HSHELL_GETMINRECT = 5 ' 窗体被最大化或最小化 HSHELL_REDRAW = 6 ' Windows 任务栏被刷新 HSHELL_TASKMAN = 7 ' 任务列表的内容被选中 HSHELL_LANGUAGE = 8 ' 中英文切换或输入法切换 返回值: 如果函数调用成功则返回 True(非零),否则返回 Flase(零)。 ####################################################### 我想不用我多说大家也该知道这个被 微软 那些老家伙隐藏的东东的作用有多大!!! 很多人都利用 钩子函数(Hook) 来实现系统的监控。而对于 VB 来说,这似乎不可能。因为在 VB 中你是无法创建 全局钩子(RemoteHook)的。VB 所支持的 线程钩子(LocalHook) 并不能实现对 Windows 的系统监控。当然你可以用 VC 先做一个 RemoteHook ,然后在 VB 中调用。但是这样是不是太烦琐了?!而且如果你是 VC 的门外汉,那你就只能望一声叹息了。(你也许还会在心里咒骂:VB,你这个没用的家伙:) 其实,用不着这么麻烦(更不要骂 VB,她是无罪的)。 看看上面那个未公开的 API ,你就知道该怎么做了。 心动不如行动,试试吧。 (我用 VB 做了一个系统监控程序,其关键技术就是利用了这个函数。如果有兴趣,我们可以交流交流啊。QQ:308185210)
共1 条记录, 每页显示 10 条, 页签: [1]


Powered By 湖南一师校友论坛
Processed in .07422 s, 5 queries.