低级鼠标勾子的问题

listhome 2010-07-19 11:39:50
大家好,我用C#写了一个全局勾子,用于得到鼠标事件,鼠标事件可以拿到,但是每次点设置勾子的那个窗体的“最大化”,“最小化”,“关闭”按钮,应程都要是死一下。请问大家遇到过这种情况吗
设置鼠标勾子的代码

// Make sure we keep a reference to this delegate!
// If not, GC randomly collects it, and a NullReference exception is thrown
_hookCallback = new WinAPI.HookProc(HookCallbackProcedure);

Process curProcess = Process.GetCurrentProcess();
ProcessModule curModule = curProcess.MainModule;




_handleToHook = WinAPI.SetWindowsHookEx(
WH_MouseHook_LL,
_hookCallback,
curModule.BaseAddress,
0);



// Were we able to sucessfully start hook?
if (_handleToHook == 0)
{
throw new InvalidOperationException("设置全局钩子失败" + Marshal.GetLastWin32Error());
}



调用的代码


public partial class Form1 : Form
{
GlobalHook hook = new MouseHook();

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
hook.Start();

}

private void button2_Click(object sender, EventArgs e)
{
hook.Stop();

}

private void Form1_Load(object sender, EventArgs e)
{

}
}
...全文
203 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
海子0011 2010-07-25
  • 打赏
  • 举报
回复
market
listhome 2010-07-22
  • 打赏
  • 举报
回复
这他妈的就是程序员大本营啊
listhome 2010-07-19
  • 打赏
  • 举报
回复
一样吧,就是用C#设个勾子而已,都是调用的API
InitialJ 2010-07-19
  • 打赏
  • 举报
回复
SendMessage or PostMessage?
Eleven 2010-07-19
  • 打赏
  • 举报
回复
C#???这里是VC/MFC,发错地方了吧。。。
listhome 2010-07-19
  • 打赏
  • 举报
回复
另外再问一个问题,用GetMessage勾子能得到按钮被按下的消息吗
listhome 2010-07-19
  • 打赏
  • 举报
回复
打错了几个字,是每次点最大化,最小化或关闭时,程序都要死一下,好像是勾子勾住了,但是没有做任何处理。
listhome 2010-07-19
  • 打赏
  • 举报
回复
谁给解释一下下阿
listhome 2010-07-19
  • 打赏
  • 举报
回复
发现关掉XP的主题,改为Windows经典就不卡了。寒
magic7004 2010-07-19
  • 打赏
  • 举报
回复
没遇到过,哥做的钩子都贼好用
listhome 2010-07-19
  • 打赏
  • 举报
回复
有人回答吗

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧