C# 實現winform軟體最小化到系統托盤,開機自啟動

来源:https://www.cnblogs.com/zkwarrior/archive/2023/05/11/17390302.html
-Advertisement-
Play Games

C# 實現winform軟體最小化到系統托盤,開機自啟動 問題描述 用戶的電腦是win7系統,應用系統在用戶電腦上運行時部分功能需要訪問註冊表,但是使用這些功能時會提示用戶沒有許可權訪問註冊表。原因分析 win7及後續高版本系統對用戶的許可權控制比較嚴,就算用戶的許可權較高,但用戶啟動程式時預設還是以普通 ...


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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 用go設計開發一個自己的輕量級登錄庫/框架吧(項目維護篇) 本篇將開始講講開發庫/框架的最開始階段,也就是搭建一個項目 源碼:weloe/token-go: a light login library (github.com) 項目結構 項目結構,不是上一篇所說的代碼架構,而是分包,明確的分包更有助 ...
  • 一、問題引入 閱讀UNIX網路編程 捲1:套接字聯網API 第3版的前4個章節,覺得有必要對書籍上的源碼案例進行復現,並推敲TCP的C/S通信過程。 二、解決過程 2-1 server #include <sys/types.h> #include <sys/socket.h> #include < ...
  • Go 資料庫編程 一、連接資料庫 準備連接到資料庫 要想連接到 SQL 資料庫,首先需要載入目標資料庫的驅動,驅動裡面包含著於該資料庫交互的邏輯。 sql.Open() 資料庫驅動的名稱 數據源名稱 得到一個指向 sql.DB 這個 struct 的指針 sql.DB 是用來操作資料庫的,它代表了0 ...
  • 時隔20天,OpenAI從v0.0.1升級到了v0.2.0。與v0.0.1版相比,v0.2.0版主要做了以下改動: 把cmd目錄下微信公眾號的相關服務遷移到了這裡 完善了cmd下的測試服務,針對openAI庫里實現的各個介面都提供了響應的調用介面,服務運行後可以通過postman進行測試 完成了Fi ...
  • 問題概述 在Transactional方法中使用this方式調用另一個Transactional方法時,攔截器無法攔截到被調用方法,嚴重時會使事務失效。 類似以下代碼: @Transactional public void insertBlogList(List<Blog> blogList) { ...
  • 大家是否見過這種for迴圈,在for迴圈前加了個標記的: outerLoop: for (; ; ) { for (; ; ) { break outerLoop; } } 我之前有一次在公司業務代碼中見過有這種寫法的,沒在意,今天在看JDK線程池的代碼時,又看到ThreadPoolExecutor ...
  • 生成的代碼將和介面對應的參數、返回值一一對應,本文底層使用的工具為NSwag.exe,其他可替代的方案還有AutoSet.exe。 本文中生成的代碼將在編譯過程中自動編譯,類似grpc生成代碼的模式,如果使用AutoSet則需要手動引入代碼。 另外也可以使用NSwag對應的vs插件(https:// ...
  • 本文屬於 OData 系列 引言 在 OData 中,EDM(Entity Data Model) 代表“實體數據模型”,它是一種用於表示 Web API 中的結構化數據的格式。EDM 定義了可以由 OData 服務公開的數據類型、實體和關係。 EDM 也提供了一些規則來描述數據模型中的實體之間的關 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...