收录日期:2019/03/21 00:13:19 时间:2016/05/24 10:41:41 标签:进程/线程/DLL
我想用skinmagin作一个改变win2k界面及notepad界面,想用hook api 的方法
请高手给个方法或给一个hook api工程示例 不胜感激
google~
下面给出了一段有关MOUSE HOOK的代码示例:
MOUSE HOOK DLL
CMouseHookDllApp theApp;

BOOL installhook()
{
    hhkMouse=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseProc,hins,0);
    return TRUE;
}

LRESULT CALLBACK MouseProc(
  int nCode,      // hook code
  WPARAM wParam,  // message identifier
  LPARAM lParam   // mouse coordinates
)
{
//[in] Specifies the identifier of the mouse message. 
//This parameter can be one of the following messages: 
//WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, 
//WM_RBUTTONDOWN, or WM_RBUTTONUP

int cx;
int cy;
MOUSEHOOKSTRUCT *ms;

if( nCode == HC_ACTION || nCode == HC_NOREMOVE ) {

TRACE("message:%x\n",(UINT)wParam);
switch ( (UINT)wParam ) {
case WM_MOUSEMOVE:
ms = (MOUSEHOOKSTRUCT*)lParam;
TRACE("point:%d,%d\n",ms->pt.x,ms->pt.y );

case WM_LBUTTONDOWN:
TRACE("WM_LBUTTONDOWN");
return 1;
case WM_LBUTTONUP:
TRACE("WM_LBUTTONUP");
return 1;
default:
return CallNextHookEx(hhkMouse,nCode,wParam,lParam);
}
}
return CallNextHookEx(hhkMouse,nCode,wParam,lParam);
}

应用程序:
在INIT INSTANCE函数内追加
//读取DLL

inshook instkbhook;
if(hinstDLL=LoadLibrary((LPCTSTR)"MouseHookDll.dll"))
{
instkbhook=(inshook)GetProcAddress(hinstDLL,"installhook");  
instkbhook();
}
else
{
MessageBox("当前目录找不到Hook.dll文件,程序初始化失败");
return FALSE;
//    OnOK();
}
inshook mouseProc;
mouseProc=(inshook)GetProcAddress(hinstDLL,"MouseProc");
hhkMouse = SetWindowsHookEx(WH_MOUSE,(HOOKPROC)mouseProc,hins,0);
我说的是hook api函数啊,而不是hook消息,mouse,keyboard等,请指点
在MSDN上查SetWindowsHookEx,不就可以看到相关的HOOK的API了吗.

.net三层构架问题 jubing.Open()‘-----连接不上 这个SQL文为什么检索不出来数据?求高手 问个关于复选框的问题。。 哪位大虾给个实例.............参考学习 const变量仍然会被修改 求解释! Delphi Form的Touch属性下,加入GestureManager运行就会报错! 为什么 如何获取其他类中的stadic变量的地址 一个存储过程问题 三维cad软件对于2维cad公司大概什么样的价值。 求助 按钮响应函数咋写?? Android系统上如何搭建samba服务器? 第一次用 android 平台 实现类似excel 的同时锁定行和列的效果 意大利对克罗地亚cntv背景音乐 意大利对克罗地亚cntv背景音乐 旋转图片后无法实现震动效果,求解释 red hat下搭建web程序导致访问过慢 sql 查询 在xcode4环境使用boost库遇到问题求助 如何把这sql变为Linq查询 用Linq如何为GridView写通用的Update函数? C# ActiveX控件注册的问题 列读取的问题,大家帮帮忙? 一道简单的小题目 为什么这个全局钩子只对本窗口有效 怎么用循环显示多个datatime中month .net sql查询 创建非模态对话框怎么对话框没添加的应用程序中呀?