一文教你学会WinForm实现管理员权限运行的三种方式
前言
相信大家都遇到过这种情况,我们的软件运行时,如果涉及到文件或者数据库操作的时候,可能会提示权限不足。一种比较简单的办法,就是右击以管理员权限运行,但是每次这么操作,又会比较麻烦,有没有什么更好的办法呢?今天跟大家分享一下WinForm程序以管理器权限运行的几种方法。
采用Process.Start方法
思路很简单,就是在Program.cs入口处判断当前是不是管理员权限,如果是,则不做其他处理,如果不是,改成管理员权限。
修改Main方法如下所示:
///
[STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //获得当前登录的Windows用户标示 WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); //判断当前登录用户是否为管理员 if (principal.IsInRole(WindowsBuiltInRole.Administrator)) { //如果是管理员,则直接运行 Application.Run(new FrmMain()); } else { //创建启动对象 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.WorkingDirectory = Environment.CurrentDirectory; startInfo.FileName = Application.ExecutablePath; //设置启动动作,确保以管理员身份运行 startInfo.Verb = "runas"; try { Process.Start(startInfo); } catch { return; } //退出 Application.Exit(); } }直接修改exe属性右击exe程序文件,在弹出的属性对话框中,兼容性选项中,勾选“以管理员身份运行此程序”即可。
添加应用程序清单文件
这种方法也是我常用的一种方式。
点击项目,右击添加,现有项,选择应用程序清单列表。
添加完成后,打开app.manifest文件,将:
修改为:
郑重声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。
相关阅读
猜你喜欢
-
一文了解通信基站能耗综合管理系统
2021-09-14 -
一文教你使用LBPH算法理解人脸识别
2021-09-13 -
一文了解SATA协议
2021-09-13 -
一文详解Flink知识体系
2021-09-13 -
一文揭秘芯片为什么这么缺
2021-09-10 -
一文教你使用python+Keras检测年龄和性别
2021-09-09 -
一文学会使用CNN进行人脸关键点识别
2021-09-08 -
一文了解均衡的秘密之FFE
2021-09-08 -
Linux从头学:一文理解【任务管理】和【任务切换】
2021-09-08 -
阿里GATNE:一文了解异构图的表示学习
2021-09-06 -
一文教你如何使用自动编码器进行图像去噪
2021-09-03 -
一文了解如何使用CNN进行图像分类
2021-09-02 -
一文带你破解DDOS攻击原理
2021-08-31 -
一文了解电磁兼容设计中的铁氧体EMI抑制器件
2021-08-31 -
一文了解如何在Python中使用自动编码器
2021-08-31