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日

相关文章

  • C#通过HttpWebRequest发送带有JSON Body的POST请求实现

    C#通过HttpWebRequest发送带有JSON Body的POST请求实现,一般包括以下几个步骤: 1. 引入命名空间 在 C# 文件中,需要引入 System.Net 命名空间,代码如下: using System.Net; 2. 创建 POST 请求对象 使用 HttpWebRequest 类创建 POST 请求对象,代码如下: HttpWebRe…

    C# 2023年5月31日
    00
  • C# websocket及时通信协议的实现方法示例

    下面我们详细讲解“C# WebSocket及时通信协议的实现方法示例”的完整攻略。 1. WebSocket 协议介绍 WebSocket 协议是一种在单个 TCP 连接上进行全双工通信的协议,它可以在客户端和服务器之间建立持久性的连接,以支持双向实时消息传递。它可以通过 HTTP/1.1 中的 Upgrade 头字段和 Connection 头字段来进行开…

    C# 2023年6月7日
    00
  • ASP.NET Core在Linux下为dotnet创建守护进程

    ASP.NET Core在Linux下为dotnet创建守护进程 在Linux下,可以使用systemd来创建守护进程,以确保ASP.NET Core应用程序在系统启动时自动启动,并在崩溃时自动重启。本攻略将提供一些示例,演示如何在Linux下为dotnet创建守护进程。 步骤 步骤1:创建.NET Core Web API项目 首先,需要创建一个.NET …

    C# 2023年5月17日
    00
  • .NET Core部署到linux(CentOS)最全解决方案,常规篇

    本文为大家介绍使用 .NET Core部署到Linux服务器的方法,通过本文你将了解到Linux在虚拟机下的安装、Xshell,Xftp的使用方法、git在linux下的交互使用以及.net core在linux下的发布与运行全过程,本文皆在总结了一些经验与笔记在部署过程中遇到的一些问题,同时分享给大家,供大家参考,欢迎讨论交流。 1、Linux操作系统、X…

    C# 2023年5月5日
    00
  • C#如何调用MFC 窗口 DLL

    要在C#中调用MFC窗口DLL,需要通过以下步骤: 1.创建MFC动态连接库(DLL)项目使用Visual Studio创建MFC动态连接库项目。在创建向导中选择“动态库”,然后选择“MFC应用程序向导”和“共享DLL”。在下一步中,请设置您的项目名称和位置,然后选择“在静态库和动态库之间共享MFC”。在下一步中,请选择“空项目”。 2.编写DLL代码在MF…

    C# 2023年6月6日
    00
  • C#连接Excel2003和Excel2007以上版本做数据库的连接字符串

    当需要在程序中访问Excel文件中的数据时,我们可以使用 C# 连接 Excel 2003 和 Excel 2007 以上版本来实现。这里是完成该操作的完整攻略。 1. 连接 Excel 文件 1.1 安装 Microsoft.ACE.OLEDB.12.0 提供程序 如果想要连接 Excel2007 及以上版本,需要先安装 Microsoft.ACE.OLE…

    C# 2023年5月31日
    00
  • .NET Core 环境变量详解

    一、概述 软件从开发到正式上线,在这个过程中我们会分为多个阶段,通常会有开发、测试、以及上线等。每个阶段对应的环境参数配置我们会使用不同的参数。比如数据库的连接字符串,开发环境一般我们都是连接的测试库。以前这种情况通常是 COPY 两个同名的配置文件来进行处理,然后在本地就使用本地的配置,生产环境就使用生产环境的配置文件,十分麻烦。而 ASP .NET CO…

    C# 2023年4月25日
    00
  • C# Linq的First()方法 – 返回序列中的第一个元素

    Sure!C#中Linq的First()方法是用于返回序列的第一个元素,通常从IEnumerable接口的实现类型调用,如果序列是空的,就抛出一个异常。 下面是First()方法的语法: public static TSource First<TSource>(this IEnumerable<TSource> source); pu…

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