收录日期:2018/11/16 16:13:34 时间: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了吗.

求取点颜色例子 oracle中 merge into 备份 表的时候,始终提示 : ORA-38104: 无法更新 ON 子句中引用的列: \"D\".\"ID\" windows程序 滚动条 代码无法编译,求解答 求助好心人帮忙 紧急求助,各位高手,小弟新人!看下判断日期这个对么 求助好心人帮忙 紧急求助,小弟新人,帮解决下日期判断问题 帮忙分析下这个示例程序,数组和指针的关系.迷惑 如何像QQ面板一样,单击最小化会有个效果移入到托盘所在的位置 求 php 多线程同步 jsf websphere download 来深圳半年了,吐槽下 请教如何在一个字符串有分割符的某个位置插入字符串 快离开工作五年的单位了,发帖留念 Struts 2 url 问题 intel c 9.0 编译器一个比较严重的问题,不知道该如何解决? VS2010新建项目时出现未能加载 郁闷的是用java这么久了,居然file.renameTo()方法没有成功一次 有没有人帮我下载个--Web Table Extractor v1.2破解版--万分感激 像163邮箱那样怎么在登陆页面验证用户的用户名和密码是否正确的?用户是Linux下的系统用户,怎么去验证这个用户的用户名和密码是否正确呢?急啊 C# webbrowser模拟点击链接 各位仁兄,哪位有VC++6.0版的 GDI+ ? 团队精神是个什么东东? 搜索引擎中长串匹配及聚类算法:后缀树算法(Java版) 运算符优先级,很纠结啊,求助 高手留步!VC6 无法调用ActiveX DLL 关于typeid用法,求解 纯技术贴开始:如何使用HOOK从内核偷包处理,绕开协议栈????? 花生瓜子切不可随意乱吃