我是WindowHooks中的新手,我的目标是"挂钩鼠标,键盘,并从另一个进程找到信息",然后我想我会尝试挂钩它。我是用C#制作一个窗口应用程序(我不使用DLL)。
if(hHook == 0)
{
MouseHookProcedure = new HookProc(mainForm.MouseHookProc);
hHook = SetWindowsHookEx(WH_MOUSE,MouseHookProcedure,(IntPtr)0,GetCurrentThreadID())
if(hHook == 0)
MessageBox.Show("SetWindowsHookEx Failed");
return;
带
MH_MOUSE = 7;
和MouseHookProc是Windows应用程序中的公共静态int(我在windows应用程序中编写)。
钩子工作,但只在其自身,但我需要它挂钩另一个过程。我尝试从GetCurrentThreadID()
更改为GetWindowThreadProcessID(hWnd, NULL)
,但它失败了,我不知道为什么。
代码有什么问题吗?
p / s:我不太了解Window Hooks,我是从MSDN学到的,这里是link
答案 0 :(得分:0)
但是,在您的代码中,您已经编写了swtWindowsHookEx()而不是setWindowsHookEx()。
也许如果你纠正它,你就会得到你想要的东西。
欢呼和快乐的节目!答案 1 :(得分:0)
感谢Hans Passant,我使用Global钩子获取所有信息,然后GetForegroundWindow()
检查我有的列表句柄。这样,我不需要使用DLL,但我仍然可以通过鼠标/键盘消息来写入密钥日志。