刚学编程,所以很多东西都不懂,前两天已在网上购买了<加密与解密>第三版, 现在都担心拿到书后到底能不能看得懂; 唉.
转回正题, 想实现的目标: A程序中有几个按钮, 只要某个特定的按钮(如,按钮 1)被点击, B程序马上就可以收到消息; (注: A程序的源码肯定是没有的, B程序自己来写)
于是用Hook消息来实现; (以下为简要代码)
//先获得A进程中创建了这个窗口的线程ID
HWND Ahwnd = FindWindow(NULL,"ATest");
DWORD AID = GetWindowThreadProcessId(Ahwnd,NULL);
//DLL中
HHOOK hookA = SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,hookdll,AID);
LRESULT CALLBACK GetMsgProc(int nCode,WPARAM wParam ,LPARAM lParam)
{
MSG msg = *(MSG*)lParam;
if(nCode >= 0)
{
switch(msg.message)
{
case BN_CLICKED:
MessageBox(NULL,"i am a hook","Hook",MB_OK);
break;
default:
break;
}
}
return CallNextHookEx(hookA,nCode,wParam,lParam);
}
________________________________________________________
运行结果: 就是无法判断出按钮被点击了;
问题可能就出在:
switch(msg.message)
{
case BN_CLICKED:
..........
..........
}
我对windows消息机制只是了解一些原理, 具体的不了解,比如都有一些什么消息, 有都哪些种类, 是不是也分层次... 等等;
希望大家给于指导一下,谢谢!
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法