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

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());
        }

  

  

时间: 2024-08-01 21:22:12

WinForm通过句柄进行权限的控制的相关文章

以后台权限菜单控制为例,获取js路径后面参数值

<script type="text/javascript" src="../Public/js/common.js?menuids=1,2,3,4,5&ckids=4-5-6" /></script> 需要注意的是,此段js文件位置需要放在页面中所有js包含文件后面,目前暂未想到好的办法解决位置问题. //获取js后面参数 function getUrlArg(){ var url = $("script:last&quo

&#8203;web服务目录的访问权限的控制

web服务目录的访问权限的控制 1.确认web服务器已经安装并启动 [[email protected] ~]# ls /usr/local/httpd/ [[email protected] ~]# netstat -utpln |grep 80 tcp        0      0 :::80                       :::*                        LISTEN      73341/httpd 2.设置只允许192.168.100.110访问,

Java编程思想(三) —— 访问权限的控制

之前没去注意的修饰符,一般变量前面没添加,一个是不知道有什么用,一个是懒,后面遇到项目的时候就会发现私有和公有区别还是很大的. (1)首先是包名 使用一个类的时候,例如集合类,就需要引入这个包,然后再使用该包下面的类.如: package com.myown.iaiti; public class Print { static void print(String s){ System.out.println(s); } } 自定义的包,通过引入自己的包,以后你就可以使用自己写的方法进行字符串的打

mysql的root的权限被控制无法授权

一.环境: MariaDB [(none)]> select version(); +----------------+ | version()      | +----------------+ | 5.5.50- | +----------------+ 二 . 工程师反馈无法创建账户 三.问题定位 查看user表,确定是否存在异常 无异常,用户存在,root权限也都在.通过命令查看root白名单权限: Root权限被控制在mysql数据库上了.对比正常库的root权限: 显然是root被控

WinForm开发框架【细化权限至操作按钮】

有不少园友经常问我程序有没有更新,真的很抱歉,最近因为工作原因一直很忙,导致程序有很长时间都没有更新了,首先在这里感谢关心俺的朋友们. 这几天好好看了一下原来的程序,还有很多地方需要改进,比如操作数据库的方式.权限.报表等等,数据库与报表下一步逐步进行更新,先将权限再细化一点儿,精确到操作按钮上面,本来想在菜单下面跟着添加按钮权限的,这样的话看上去直观一些,如下图所示: 但是在开发过程中遇到了几个比较棘手的问题,如果要整理出来的话改动的地方会很多,所以暂时我将按钮权限提出来了,当然这个功能是一模

C# Winform程序请求管理员权限

如果你的Winform程序需要管理员权限才能正常执行,请加入如下代码: static class Program { /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main(String[] Args) { //获得当前登录的Windows用户标示 System.Security.Principal.WindowsIdentity identity = System.Security.Prin

自定义标签 + shiro 实现权限细粒度控制

这里我们是使用shiro来实现登录验证,授权等操作,然后利用自定义jsp标签来实现权限菜单的细力度控制.所谓的细粒度控制,就是根据用户登录权限的不同,显示不同的菜单,例如,用户如果有添加用户,修改用户的权限,我们就显示这个俩个菜单,然后我们并不显示删除用户的菜单. 如何自定义jsp标签 1.定义一个权限标签,命名为mytag.tld <?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="

权限(二)--权限的控制(过滤器与自定义标签)

一. 接着上一篇的说 权限(一)--用户.权限组以及权限的分配 权限的控制分为两块: 1.页面的控制(没用权限的不让他看到页面) 2.过滤控制(就算知道url,没有权限也不让进) 在项目中,都是由一个人来负责权限部分的编写,然后其他人的活中多少会涉及到一些权限相关的. 所以,权限控制的通用性是非常重要的(总不能每次写到就找写权限部分的那个人,问他怎么弄). 测试demo包: 权限控制Demo 二.过滤器 在访问url之前,进行一次过滤,同时查看当前用户是否有访问该url的权限. 为了保证通用性,

【Struts2】文件的上传与上传权限的控制

很多关于Struts2的文章,对此都有详细的介绍,但是里面的示例的程序写得很糟糕.各种无意义的拦截器技术.国际化技术.初始化参数,把原本简单的程序弄得很繁琐.同时,部分关键的代码没有写.导致每次上传Tomcat都报Unable to find 'struts.multipart.saveDir' property setting.的警告.然后上传大点的文件,整个Web工程就崩溃,然后后台抛出大段的File Upload BaseSize Limit Exceeded Exception异常,刷爆