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

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日

相关文章

  • ASP .NET Core API发布与部署以及遇到的坑和解决方法

    ASP .NET Core API发布与部署以及遇到的坑和解决方法 在ASP .NET Core应用程序中,发布和部署API是一项非常重要的任务。在本攻略中,我们将介绍ASP .NET Core API发布与部署的方法,并提供两个示例说明。 1. 发布API 在ASP .NET Core应用程序中,发布API可以使用Visual Studio或者命令行工具进…

    C# 2023年5月16日
    00
  • Oracle中for循环的使用方法

    下面是关于Oracle中for循环的使用方法的完整攻略: 什么是Oracle中的for循环 Oracle中的for循环是一种循环语句,可以重复执行一系列语句,直到指定条件不再满足为止。for循环主要用于将一组已知的操作重复执行,通常包括三个主要部分:循环变量的初始化、循环条件的判断和循环变量的更新。 for循环的语法和使用方法 Oracle中for循环的语法…

    C# 2023年5月15日
    00
  • 浅谈C#基础之类的访问修饰符

    浅谈C#基础之类的访问修饰符 C#中共有5种访问修饰符,分别为public、private、protected、internal和protected internal。不同的访问修饰符可以在不同的范围内控制类、方法、属性、字段及其他成员的可访问性。 public访问修饰符 public访问修饰符用于指定一个类、方法、属性或字段可以从任何其他类(包括其他项目中…

    C# 2023年5月31日
    00
  • asp.net 动态引用样式表代码

    下面是详细讲解“asp.net 动态引用样式表代码”的攻略。 1. 什么是动态引用样式表代码 ASP.NET 动态引用样式表代码指的是在 ASP.NET 网页中,通过使用响应式设计原理,利用 C# 或 VB 语言实现样式表的动态引用,使得页面实现了样式与内容分离的效果,提高了网页的可维护性。 2. 如何使用 ASP.NET 动态引用样式表代码 常见的动态引用…

    C# 2023年5月31日
    00
  • 详解如何在ASP.NET Core中使用Route特性

    详解如何在ASP.NET Core中使用Route特性 在ASP.NET Core中,Route特性是一种常用的路由技术,它可以帮助我们定义URL模式,将请求映射到相应的控制器和操作方法。本攻略将介绍如何在ASP.NET Core中使用Route特性,并提供两个示例说明。 使用Route特性 在ASP.NET Core中,我们可以使用Route特性来定义UR…

    C# 2023年5月17日
    00
  • ASP.Net前台调用后台变量的方法

    要在 ASP.Net 前台页面中调用后台的变量,可以通过以下方法实现: 在后台代码中定义变量并使用public或protected关键字进行修饰。例如: //定义变量 protected string MyVariable; //给变量赋值 MyVariable = "Hello, World!"; 在前台页面中使用“<%=” 闭合…

    C# 2023年6月7日
    00
  • C#实现类型的比较示例详解

    C#实现类型的比较示例详解 引言 C#是一门强类型的语言,在C#中,我们需要对不同的数据类型进行比较。因此,C#提供了多种方法来进行类型的比较。本文将介绍C#中实现类型比较的方法。 基本类型的比较 在C#中,基本类型的比较可以直接使用“==”和“!=”运算符。下面是一个示例: int a = 10; int b = 20; bool result = a =…

    C# 2023年5月14日
    00
  • Go语言中转换JSON数据简单例子

    以下是“Go语言中转换JSON数据简单例子”的完整攻略。 1. 什么是JSON格式 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web应用程序和移动应用程序之间的数据传输。JSON格式以文本的形式进行数据存储,由键值对组成,类似于JavaScript对象。 2. Go语言中的JSON库 在Go语言中,官方…

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