ysm 发表于 2014-3-7 11:54:54

花了一上午的时间想在vc下写个屏蔽鼠标的小程序,但总是屏蔽不了鼠标消息...

小弟刚接触C不久,望指点...几行代码如下:

#include<stdio.h>
#include<windows.h>

LRESULT CALLBACK MouseProc(
                           int nCode,      
                           WPARAM wParam,   
                           LPARAM lParam
                        )
{
    return 1;
}

void main()
{
    SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,0);
}


向往青莲 发表于 2014-3-7 11:54:55

该hook要起作用必须在有调用GetMessage or PeekMessage的进程上下文中
看:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644988(v=vs.85).aspx
也就说通常要注入到含有窗口的进程中。。。注入。。。。

ysm 发表于 2014-3-7 15:45:15

向往青莲 发表于 2014-3-7 13:34 static/image/common/back.gif
该hook要起作用必须在有调用GetMessage or PeekMessage的进程上下文中
看:http://msdn.microsoft.com/en- ...

我下午到网上找了些关于注入的资料,自己写的代码如下:
首先创建动态链接库文件:
      Hook.cpp:
#include<windows.h>
HHOOK g_hMouse;
LRESULT CALLBACK MouseProc(
                                                   int nCode,      // hook code
                                                   WPARAM wParam,// message identifier
                                                   LPARAM lParam   // mouse coordinates
                                                   )
{
        return 1;
}
void SetHook()
{
        g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,GetModuleHandle("Hook"),0);
}

同目录下建一个Hook.def :
LIBRARY Hook
EXPORTS
SetHook@2

另建控制台工程shubiao.cpp:

#include<stdio.h>
_declspec(dllimport) void SetHook();

void main()
{
        SetHook();
}
并且把动态链接库的Hook.dll文件复制到该目录,在工程->设置->链接里面添加了Hook.lib文件程序能编译成功,但是没能实现功能,无法锁住鼠标。。。望指教!!!

向往青莲 发表于 2014-3-7 16:28:38

ysm 发表于 2014-3-7 15:45 static/image/common/back.gif
我下午到网上找了些关于注入的资料,自己写的代码如下:
首先创建动态链接库文件:
      Hook.cpp:
...

该hook要起作用必须在有调用GetMessage or PeekMessage的进程上下文中

好吧。。→_→。。要用在调用了GetMessage 或 PeekMessage的进程中
你写的。。。主函数那个是控制台。。不是窗口程序

ysm 发表于 2014-3-8 13:13:03

向往青莲 发表于 2014-3-7 16:28 static/image/common/back.gif
该hook要起作用必须在有调用GetMessage or PeekMessage的进程上下文中

好吧。。→_→。。要用在调用了 ...

弱弱的问下:GetMessage or PeekMessage 应该放在哪用,小弟实在是试了好长时间都没弄出来....头皮都快抓破了

machimilk 发表于 2014-3-8 14:40:14

本帖最后由 machimilk 于 2014-3-8 14:42 编辑

是要让鼠标死掉吗,看看这样符合你要求吗

ysm 发表于 2014-3-8 15:58:58

machimilk 发表于 2014-3-8 14:40 static/image/common/back.gif
是要让鼠标死掉吗,看看这样符合你要求吗

我是要不带界面的基于Win32的应用程序来实现鼠标死掉,,,,

向往青莲 发表于 2014-3-8 17:28:40

ysm 发表于 2014-3-8 13:13 static/image/common/back.gif
弱弱的问下:GetMessage or PeekMessage 应该放在哪用,小弟实在是试了好长时间都没弄出来....头皮都快抓 ...

用vs创建一个窗口程序。。貌似默认的就有GetMessage(自己看下吗)然后。。运行.....然后注入他。。。
顺便说一下。。。99%的带有界面的程序就有GetMessage or PeekMessage
比如说qq。。360.。。。rk。。。explorer。。。压缩包。。→_→
好吧。。玩笑开到这里。。。反正如果你是初学的话(ps: 肯定是初学。。)。。还是照着书弄。。不要自己研究。。
站在巨人肩上会看的更远。。言尽于此。。。。

ysm 发表于 2014-3-8 18:10:48

向往青莲 发表于 2014-3-8 17:28 static/image/common/back.gif
用vs创建一个窗口程序。。貌似默认的就有GetMessage(自己看下吗)然后。。运行.....然后注入他。。。
顺 ...

恩恩,谢谢!!!

向往青莲 发表于 2014-3-8 18:55:32

ysm 发表于 2014-3-8 18:10 static/image/common/back.gif
恩恩,谢谢!!!

不用客气   

ysm 发表于 2014-3-9 18:49:27

machimilk 发表于 2014-3-8 14:40 static/image/common/back.gif
是要让鼠标死掉吗,看看这样符合你要求吗

鼠标锁死后,如何解开鼠标的锁定...?

machimilk 发表于 2014-3-10 00:38:53

ysm 发表于 2014-3-9 18:49 static/image/common/back.gif
鼠标锁死后,如何解开鼠标的锁定...?

原理就是下鼠标钩子全局的 解锁就是干掉自己的钩子
页: [1]
查看完整版本: 花了一上午的时间想在vc下写个屏蔽鼠标的小程序,但总是屏蔽不了鼠标消息...