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

yizhihongxing

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

 

原文链接:https://www.cnblogs.com/zkwarrior/archive/2023/05/11/17390302.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 实现winform软件最小化到系统托盘,开机自启动 - Python技术站

(0)
上一篇 2023年5月10日
下一篇 2023年5月11日

相关文章

  • C# 正则表达式常用的符号和模式解析(最新推荐)

    C# 正则表达式常用的符号和模式解析(最新推荐) 简介 正则表达式是面向“字符”模式的,由字符组成的一种检索模式。在C#中,对正则表达式有很好的支持,我们可以使用System.Text.RegularExpressions.Regex类进行正则表达式的匹配和操作。 虽然正则表达式的语法看似复杂,但是当你掌握了其中的一些常用的符号,你会发现正则表达式变得简单易…

    C# 2023年6月6日
    00
  • C# Linq的All()方法 – 确定序列中的所有元素是否满足指定的条件

    C#中的Linq是使用函数式和面向对象的方法进行数据查询和变换的一种技术。其中,All()方法是用来检查集合中的所有元素是否都满足指定的条件。下面,我们来详细讲解All()方法的使用攻略: 语法 All()方法的语法如下: public static bool All<TSource> (this System.Collections.Gener…

    C# 2023年4月19日
    00
  • ASP.NET Core处理管道的深入理解

    ASP.NET Core处理管道的深入理解 在本攻略中,我们将深入理解ASP.NET Core处理管道的工作原理和使用方法。我们将介绍ASP.NET Core处理管道的组成部分、中间件的作用和使用方法,并提供两个示例说明。 处理管道的组成部分 ASP.NET Core处理管道由以下三个组成部分组成: 请求管道:处理HTTP请求的管道。 响应管道:处理HTTP…

    C# 2023年5月16日
    00
  • asp.net 获取机器硬件信息(cpu频率、磁盘可用空间、内存容量等)

    获取机器硬件信息是一个常见的需求,特别是在系统监控和性能优化的场景下。ASP.NET提供了多种方法来获取机器硬件信息,包括CPU频率、磁盘可用空间、内存容量等。 以下是获取机器硬件信息的完整攻略。 1. 获取CPU频率 获取CPU频率可以通过System.Management命名空间中的ManagementObject类来实现。具体代码如下: using S…

    C# 2023年6月3日
    00
  • asp.net读取excel文件的三种方法示例

    标题:ASP.NET读取Excel文件的三种方法示例 读取Excel文件是一个常见的需求,ASP.NET提供了多种方式读取Excel文件,本文将介绍三种方法示例。 1. 使用OleDbDataReader读取Excel文件 通过OleDbDataReader可以读取Excel文件的数据,需要注意的是,连接字符串中需要指定Excel文件的路径和名称,具体代码如…

    C# 2023年6月3日
    00
  • 深入理解c# checked unchecked 关键字

    关于“深入理解C# checked/unchecked 关键字”的攻略,我会进行详细阐述。首先,我们先来了解一下 checked 和 unchecked 关键字的作用。 checked 和 unchecked 关键字 checked 和 unchecked 关键字是用于控制整型溢出检查的语言特性。按照 C# 程序默认的行为,对于一个整型变量的计算表达式,如果…

    C# 2023年5月15日
    00
  • 详解C++中string的用法和例子

    详解C++中string的用法和例子 string简介 在C++中,string是一个非常实用的类,用于处理文本字符串。它的功能比C语言中的char数组更强大、更简单,也更安全。 头文件引入 使用string需要引入以下头文件: #include <string> 命名空间 想要使用string类,需要用到std命名空间。可以使用如下的名称空间声…

    C# 2023年6月8日
    00
  • C# WebService发布以及IIS发布

    C# Web Service 是一个旨在提供相互操作性的中间层组件,它使用SOAP协议(SimpleObject Access Protocol)。它可以被许多不同的应用程序使用,无论这些应用程序使用什么平台或语言。 在C#中,我们可以使用Visual Studio或手动编写代码来编写Web Service,本文将介绍C# Web Service的两种发布方…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部