最近遇到需要屏蔽任务栏的右键弹出菜单问题,小费了番周折,写出来希望对需要的人有帮助。
网上查了半天资料,修改注册表可以实现,但有个缺点需要重启机器,甚为不爽。还有用鼠标钩子截获鼠标右键消息来达到目的,这里需要注意一点,当鼠标右键释放时菜单才会弹出(由于开始只截获了鼠标按下的消息,程序一直不灵,一度怀疑用钩子实现的可能性,哎,细心细心啊)。
关于c#调用Windows API和钩子的使用,资料很多就不细说了。可以参考
http://blog.csdn.net/LeoMaya/archive/2007/05/18/1615052.aspx
http://blog.csdn.net/wztgq/archive/2006/08/02/1012132.aspx
还有两个Api的浏览器,相当不错
FoxAPI中文函数浏览器V1.5(有详细的Api函数的说明)
API Explorer V2.82(可以把Api函数转换成C#和VB.Net代码)
在Visual Studio 2005中调试通过,工程可在http://download.csdn.net/source/536490下载
///Author:danseshi
///Email:danseshi@yahoo.com.cn
///Bolg:http://blog.csdn.net/danseshi/
///Date:2008.7.12
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Diagnostics;
namespace MouseHook
{
public partial class Form1 : Form
{
#region Fields
private int hMouseHook = 0;
//全局钩子常量
private const int WH_MOUSE_LL = 14;
//声明消息的常量,鼠标按下和释放
private const int WM_RBUTTONDOWN = 0x204;