首页 > 编程语言 >C# 实现winform软件最小化到系统托盘,开机自启动

C# 实现winform软件最小化到系统托盘,开机自启动

时间:2023-05-11 10:35:36浏览次数:53  
标签:C# 系统托盘 程序 用户 参考文献 自启动 权限 运行

C# 实现winform软件最小化到系统托盘,开机自启动

 

问题描述

  用户的电脑是win7系统,应用系统在用户电脑上运行时部分功能需要访问注册表,但是使用这些功能时会提示用户没有权限访问注册表。
原因分析

  win7及后续高版本系统对用户的权限控制比较严,就算用户的权限较高,但用户启动程序时默认还是以普通用户的权限启动,因此造成应用程序访问操作系统相关功能时受限。可以启动应用程序时选择已管理员身份运行,但是这样用户每次启动程序都不方便,而且有些用户也没有管理员权限。最好是应用系统启动时已用户的最大权限运行。
解决方案

  C#编写的WinForm程序可以通过配置文件方式设置程序启动时的运行权限。具体步骤如下:
  1.在Visual Studio解决方案资源管理器中的项目上点右键,选择添加->新建项。
在这里插入图片描述
  2.在添加新项窗口中选择应用程序清单文件,然后点击添加按钮。
在这里插入图片描述
  3.在项目中会新增一个app.manifest文件,双击打开改文件,其实是一个xml文件。其中的requestedExecutionLevel标签用于设置程序启动时的 运行权限,其值主要包括以下三个(参考文献中介绍的更为详细,可以查看参考文献1了解更多内容):

asInvoker:可以理解为以普通用户身份运行,详细的介绍请见参考文献1;
requireAdministrator:程序启动时需要当前用户具有管理员权限;
highestAvailable:以当前用户具有的最大权限运行。
在这里插入图片描述
在这里插入图片描述
  程序默认设置的为asInvoker,为了让用户能访问操作系统相关功能,可以将requestedExecutionLevel值设置为highestAvailable,这样应用系统就能以当前用户最大的权限运行了。

参考文献:
[1]应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果,https://walterlv.blog.csdn.net/article/details/89631840
————————————————
版权声明:本文为CSDN博主「gc_2299」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gc_2299/article/details/110503703

 

标签:C#,系统托盘,程序,用户,参考文献,自启动,权限,运行
From: https://www.cnblogs.com/zkwarrior/p/17390302.html

相关文章

  • 记录如何在vue中使用mock模拟数据
    1.mock介绍mock:假的。mock数据意思是:真的假数据。【真的即为符合接口规范要求的。假数据:数据是自己造的,不是真实数据。】mock实现方式操作流程:1.本地启mock服务器【用express写接口或本地用专门的mock服务】2.线上的mock服务器mock.js基本语法介绍:mock.js基本语法......
  • How to ensure all the deposits to exchange accounts are reflected properly?
    Accounts,includingexchangeaccounts,canreceivefundsintwoways:an“external”,or“top-level”transfer(eg.iff1XXXsendsamessagetof1ZZZthattransfers1FIL),and“internal”transfers”thatresultfromasubinvocation.Anexampleof“inter......
  • C++ - 崩溃定位用dump和pdb文件
    目的利用dump和pdb文件来快速定位程序崩溃的地方步骤1、写一个简单的崩溃程序sample.cpp1classTest{2public:3voidsay(){4inta=0;5intb=10/a;6}7};89int_tmain(intargc,_TCHAR*argv[])10{11Testt;......
  • 带负载转矩前馈补偿的永磁同步电机FOC 1.采用滑模负载转矩观测器
    带负载转矩前馈补偿的永磁同步电机FOC1.采用滑模负载转矩观测器,可快速准确观测到负载转矩。赠送龙伯格负载转矩观测器用于对比分析。2.将观测到的负载转矩用作前馈补偿,可提高系统抗负载扰动能力;提供算法对应的参考文献和仿真模型,支持技术解答。购买赠送PMSM控制相关电子文档。仿真......
  • 通过冗余数据使CSS实现无缝滚动
    通过冗余数据使CSS实现无缝滚动,需要注意的是,滚动的是容器而不是元素原理:滚动高度达到容器的50%时重新开始滚动 HTML结构<divclass="container"><divclass="wrapper"><divclass="marquee">通过冗余数据使CSS实现无缝滚动01</div><divclass="......
  • AtCoder Beginner Contest 234 Ex Enumerate Pairs
    洛谷传送门AtCoder传送门把每个点分到\((\left\lfloor\frac{x}{K}\right\rfloor,\left\lfloor\frac{y}{K}\right\rfloor)\)的正方形内,枚举相邻正方形,计入答案。正确性显然。复杂度证明就是所有每个正方形内距离为\(K\)的点对下界为\(\Omega(n^2)\)。考虑分成四个边长为......
  • [Scilab] Ubuntu 22.04下scilab绘图窗口空白
    造冰箱的大熊猫,本文适用于Ubuntu22.04@cnblogs2023/05/11 问题:在Ubuntu22.04下启动Scilab,使用surf()绘图,弹出绘图窗口,但窗口空白,没有看到绘制的图像。解决:1、在ShowApplications中找到AdditionalDrivers,安装显卡驱动。2、重启计算机。3、在ShowApplications中找到Sci......
  • socket机制
    1.概述:Socket,又称为套接字,用于描述IP地址和端口。应用程序通常通过socket向网络发出请求或者应答网络请求。Socket就是网络编程提供的一种机制:通信两端都有socket;网络通信其实就是socket之间的通信;数据在两个socket之间通过io传输。网络编程也称作为socket编程,套接字编程。......
  • mac 安装mysql
    一:下载最新的MySQL社区版为了安装更方便,建议下载dmg安装包。通用版本是5.7.20。二:安装MySQL双击mysql-5.7.20-macos10.12-x86_64.dmg文件,加载镜像双击mysql-5.7.20-macos10.12-x86_64.pkg,开始安装一直点击继续就可以安装成功。注意:安装完成之后会弹出一个对话框,告诉......
  • Docker compose单机编排工具
    Dockercompose单机编排工具目录Dockercompose单机编排工具docker-compose介绍DockerCompose使用的三步:docker-compose安装部署Docker-compose语法YAML语法自动编排zabbix注意事项:官方版MySQLcompose官方escomposedocker-compose常用命令docker-compose介绍Compose是用于定......