您的位置:首页 > 其它

WinForm通过句柄进行权限的控制

2017-06-10 14:52 190 查看
1.首先需要定义一个类实现IMessageFilter接口,结合固定的操作变量来判断具体对那哪个控件进行了什么操作,结合自定义的控件拓展的权限的字段可进行权限的标识


class GlobalEventsHandler : IMessageFilter
{
//鼠标左键点击
public const int WM_LBUTTONDOWN = 0x0201;
//键盘敲击事件
public const int WM_KEYDOWN = 0x100;

public bool PreFilterMessage(ref Message m)
{
//此处可获取全局的控件操作
Control c = Control.FromHandle(m.HWnd);
if(m.Msg == WM_LBUTTONDOWN){
//鼠标左键点击按钮
if(c is Button)
{
             if(CheckPower(C))
{
//表示事件到此未被处理,继续执行用户后序功能代码
return false;
}else
{
//表示事件到此已被处理,不再执行后续代码
return true;
}
}
}
}



2.在应用程序的启动入口添加对程序的监听

static void Main()
{
Application.EnableVisualStyles();
GlobalEventsHandler g = new GlobalEventsHandler();
//添加全局事件的监听
Application.AddMessageFilter(g);
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}


  

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: