首页  编辑  

奇妙的拦截

Tags: /超级猛料/Hook.钩子/   Date Created:

一程序,按其主窗体上的一个按钮后,会打开另一个窗体,如该窗体已打开,

则会被设成当前窗体.现我想截获主窗体的按钮被按下的消息,这样就可能打开我的

窗体,而非该程序原来的窗体.

HWND wnd = 按钮所在窗口的句柄;

WNDPROC oldProc = SetWindowLong(wnd, GWL_WNDPROC, yourProc);

...

用完后恢复 GWL_WNDPROC。

WNDPROC yourProc(...)

{

   if (那个按钮被按下) then 想干什么就干什么

   else CallWndProc(oldProc);

   ...

}

遗憾的是,WIndows有权限检查,不允许取得其他程序WNDPROC和设置WNDPROC!如果绕过去?