看流星社区

 找回密码
 注册账号
查看: 3318|回复: 4

VC远程线程注入DLL呼出窗体的问题

[复制链接]

该用户从未签到

发表于 2011-3-26 11:00:29 | 显示全部楼层 |阅读模式
论坛里VC好象都是用SetWindowHookEx来注入DLL。
我试了下用CreateRemoteThread来注入DLL,但是呼不出窗体,不知道怎么回事,贴下代码。按下HOME键没有反应,钩子是提示安装成功的。
  1. LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
  2. {
  3.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  4.     if( wParam == VK_HOME && (lParam & (1<<31)) && code == HC_ACTION)
  5.     {
  6.         AfxMessageBox(_T("按下HOME键"));
  7.     }
  8.     return CallNextHookEx(g_HookState, code, wParam, lParam);
  9. }

  10. BOOL CdllApp::InitInstance()
  11. {
  12.     CWinApp::InitInstance();

  13.     g_HookState = SetWindowsHookExA(WH_KEYBOARD, KeyboardProc, NULL, ::GetCurrentThreadId());
  14.     if(g_HookState != NULL)
  15.     {
  16.         AfxMessageBox(_T("钩子安装成功"));
  17.     }
  18.     else
  19.     {
  20.         AfxMessageBox(_T("钩子安装失败"));
  21.     }

  22.     return TRUE;
  23. }
复制代码
希望知道的来解答下啊!!!

该用户从未签到

发表于 2011-3-26 11:00:42 | 显示全部楼层
g_HookState = SetWindowsHookExA(WH_KEYBOARD, KeyboardProc, NULL, ::GetCurrentThreadId());
第二个参数返回的是一个指针 ,这样写能通过?你把 KeyboardProc改成& KeyboardProc试试

该用户从未签到

发表于 2011-3-26 11:01:01 | 显示全部楼层
if( wParam == VK_HOME && (lParam & (1<<31)) && code == HC_ACTION)
    {
        AfxMessageBox(_T("按下HOME键"));
    }
这个里面把你要呼出的窗口加进去再试试

该用户从未签到

发表于 2011-3-26 11:01:12 | 显示全部楼层
你的hook是放在哪里的啊?DLL中的?怎么都不说出来,从BOOL CdllApp::InitInstance()这里看,好像是个EXE啊?还怎么注入?
入DLL中,然后就。。。

该用户从未签到

发表于 2011-3-26 11:01:21 | 显示全部楼层
if(lParam & 0xC0000000)
        if(wParam == VK_HOME)
                     。。。。。
即可
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-4 20:24

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表