想屏蔽掉任务栏的右键菜单,改注册表却需要重新启动
下边是用c#写的鼠标钩子,可为什么不管用呢?
只把关键部分代码放上了
在线等回答 private int MouseHookProc(int nCode, int wParam, IntPtr lParam)
{
if (nCode >= 0)
{ //MOUSEHOOKSTRUCT是定义的一个结构体
MOUSEHOOKSTRUCT msh = (MOUSEHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MOUSEHOOKSTRUCT));
POINTAPI p = msh.pt; if (wParam == WM_RBUTTONDOWN)
{
//rect是任务栏的矩形区域
if(rect.Contains(new Point(p.x,p.y))
return 1;
} }
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
下边是用c#写的鼠标钩子,可为什么不管用呢?
只把关键部分代码放上了
在线等回答 private int MouseHookProc(int nCode, int wParam, IntPtr lParam)
{
if (nCode >= 0)
{ //MOUSEHOOKSTRUCT是定义的一个结构体
MOUSEHOOKSTRUCT msh = (MOUSEHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MOUSEHOOKSTRUCT));
POINTAPI p = msh.pt; if (wParam == WM_RBUTTONDOWN)
{
//rect是任务栏的矩形区域
if(rect.Contains(new Point(p.x,p.y))
return 1;
} }
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
自己解决了
应改为
if (wParam == WM_RBUTTONDOWN || wParam == WM_RBUTTONUP )
{
//rect是任务栏的矩形区域
if(rect.Contains(new Point(p.x,p.y))
return 1;
}原来是接收到鼠标释放消息的时候才会弹出右键菜单