c#通過app.manifest使程序以管理員身份運行

通常我們使用c#編寫的程序不會彈出這個提示,也就無法以管理員身分運行。微軟的操作系統使用微軟的產品方法當然是有的,通過app.manifest配置可以使程序打開的時候,彈出UAC提示需要得到允許才可以繼續,這樣就獲得了管理員的權限來執行程序

微軟在Windows Vista開始引入了UAC(用戶帳戶控制)新技術(點擊這兒了解什么是UAC)。當程序執行時需要權限的話,UAC會彈出警告消息:讓用戶確認是否同意允許這個程序改變你的計算機配置,windows需要得到你的許可才可以讓程序繼續執行下去。

通常我們使用c#編寫的程序不會彈出這個提示,也就無法以管理員身分運行。微軟的操作系統使用微軟的產品方法當然是有的,通過app.manifest配置可以使程序打開的時候,彈出UAC提示需要得到允許才可以繼續,這樣就獲得了管理員的權限來執行程序。

方法如下:

打開vs2005、vs2008等工程,在【解決方案資源管理器】里查看是否有app.manifest這個文件,如果沒有的話,通過以下方法創建:

方法1:

1、在【解決方案資源管理器】右鍵工程名稱選擇屬性;
2、在彈出的該對話框中,選擇【安全性】選項卡。
3、勾選【啟用ClickOnce安全設置】,并選中【這是完全可信的應用程序】。
4、保存工程,這時候app.manifest就自動創建了。

VS2008 工程屬性安全性


?

c# app.manifest


打開app.manifest把默認的配置修改一下,通過代碼的注釋,可以知道需要修改的節點是【requestedExecutionLevel】


app.manifest 設置


?


asInvoker : 如果選這個,應用程序就是以當前的權限運行。

highestAvailable: 這個是以當前用戶可以獲得的最高權限運行。

requireAdministrator: 這個是僅以系統管理員權限運行。

找到<requestedExecutionLevel? level="asInvoker" uiAccess="false" />
把其改為<requestedExecutionLevel? level="requireAdministrator" uiAccess="false" />

這時候修改完成,按下F5進行調試,通常會收到如下的錯誤提示:【ClickOnce 不支持請求執行級別“requireAdministrator”】。

事情好像發生了相互矛盾,上面開啟【ClickOnce】便自動創建了app.manifest,現在修改了app.manifest卻提示:ClickOnce 不支持請求執行級別“requireAdministrator”。

解決方法是:只要把【啟用ClickOnce安全設置】不勾選就可以了。

如果操作步驟正確,按下F5進行調試,會彈出如下的提示框,VS具有提升的權限。
?

vs2008 具有提升的權限


?


這樣我們編寫的應用程序在運行后,就會首先彈出這樣一個提示框 , 點【Yes】后,程序才可以繼續運行,并且獲得系統管理員的權限。

方法2:

為工程項目添加一個類,應用程序清單文件(app.manifest)。


c# 添加應用程序清單文件


?


然后可以看到app.manifest的位置不在Properties屬性里了,變成在引用里了,其節點內容也少了一些。

c# 引用 app.manifest


剩下的方法和上面相同。這樣跳過了【啟用ClickOnce安全設置】這步,直接執行,不會出錯了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252205.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252205.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252205.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle 作業

Oracle 作業 dbms_job與 dbms_scheduler 用于安排和管理作業隊列,通過使用作業,可以使ORACLE數據庫定期執行特定的任務。 一. dbms_job 1.1. 創建 variable jobno number; begin dbms_job.submit(:jobno,proce_t;, sysdate, sysdate1/24/60); commit; end; / 1.2. 參數 Job 輸出…

企業級 Spring Boot 教程 (十四)用restTemplate消費服務

構架工程 創建一個springboot工程&#xff0c;去消費RESTFUL的服務。這個服務是 http: ///gturnquist-quoters.cfapps.io/api/random &#xff0c;它會隨機返回Json字符串。 Spring Cloud大型企業分布式微服務云架構源碼請加一七九一七四三三八零 在Spring項目中&#xff0c;它…

MOS管基本認識(快速入門)

1. 三個極的判定G極(gate)—柵極&#xff0c;不用說比較好認 S極(source)—源極&#xff0c;不論是P溝道還是N溝道&#xff0c;兩根線相交的就是 D極(drain)—漏極&#xff0c;不論是P溝道還是N溝道&#xff0c;是單獨引線的那邊2. N溝道與P溝道判別箭頭指向G極的是N溝道 箭頭背…

基礎構建模塊

5 基礎構建模塊 Java平臺類庫包含了豐富的并發基礎構建模塊&#xff0c;例如線程安全的容器類以及各種用于協調多個相互協作的線程控制流的同步工具類(Synchronizer)。本章將介紹其中一些最有用的并發構建模塊。 5.1同步容器類 同步容器類包括Vector和Hashtable&#xff0c;二者…

TCP定時器

1. TCP中7種定時器 TCP中有7中定時器 &#xff08;1&#xff09;建立連接定時器(connection-establishment timer) &#xff08;2&#xff09;重傳定時器(retransmission timer) &#xff08;3&#xff09;延遲應答定時器(delayed ACK timer) &#xff08;4&#xff09;堅持定時…

sql優化大全

1. 優化SQL步驟 1. 通過 show status和應用特點了解各種 SQL的執行頻率 通過 SHOW STATUS 可以提供服務器狀態信息&#xff0c;也可以使用 mysqladmin extende d-status 命令獲得。 SHOW STATUS 可以根據需要顯示 session 級別的統計結果和 global級別的統計結果。 如顯示當前s…

Halcon實現邊緣提取

一、邊緣提取 1、設置ROI興趣區域 2、快速二值化&#xff0c;并連接相鄰區域。 這樣做的目的是進一步減少目標區域&#xff0c;通過二值化將目標區域大概輪廓提取出來 3、提取最接近目標區域的輪廓 常用函數有boundary&#xff0c;gen_contour_region_xld 4、根據自己的需求提取…

軟件工程網絡15個人閱讀作業1 201521123038 游舒婷

軟件工程網絡15個人閱讀作業1 201521123038 游舒婷 1.博客園地址 sakurai3104 2.碼云地址 sakurai3104 3.閱讀與思考 &#xff08;1&#xff09;回想一下你初入大學時對網絡工程專業的暢想 當初你是如何做出選擇網絡工程專業的決定的&#xff1f; 填報志愿的時候&#xff0c;大…

18LaTeX學習系列之---LaTeX的參考文獻

目錄 目錄前言&#xff08;一&#xff09;簡單的參考文獻1.說明2.源代碼3.輸出效果&#xff08;二&#xff09;以文件管理的方式1.說明&#xff1a;2.源代碼&#xff1a;3.輸出效果&#xff08;三&#xff09;直接從源網站獲取1.說明&#xff12;.操作目錄 本系列是有關LaTeX的…

Vue 2.0 v-for 響應式key, index及item.id參數對v-bind:key值造成差異研究

Vue 2.0 v-for 響應式key, index及item.id參數對v-bind:key值造成差異研究 在github上閱覽README.md以獲得最佳閱讀體驗&#xff0c;點這里 v-for響應式key, index及item.id參數對v-bind:key值造成差異研究 實驗背景 通常情況下&#xff0c;我們渲染一個li列表&#xff0c;采用…

halcon edges_sub_pix算子

轉載http://blog.51cto.com/juwen/133003 介紹一下Canny算子&#xff1a; 使用累計直方圖計算兩個閥值。凡是大于高閥值的一定是邊緣&#xff1b; 凡是小于低閥值的一定不是邊緣&#xff1b;如果檢測結果大于低閥值但又小于高閥值&#xff0c;那就要看這個像素的鄰接像素中有…

Python 基礎(常用數據結構)

常用數據結構 1&#xff09;元組 元組是一種靜態的數據結構&#xff0c;無法修改&#xff0c;若要修改只能重新生成新的元組。 輸出結果&#xff1a; 元組元素的獲取是通過索引值去獲得的&#xff1b;例如上面的tup1[0]返回apple&#xff1b;另外你可以直接把tup1一次性賦給多個…

Java IO(二)——RandomAccessFile

一、RandomAccessFile RandomAccessFile類可以說是Java語言中功能最為豐富的文件訪問類&#xff0c;它提供了眾多的文件訪問方法。RandomAccessFile類支持"隨機訪問"方式&#xff0c;可以跳轉到文件的任意位置處讀寫數據。要訪問一個文件的時候&#xff0c;不想把文件…

halcon select_shape_xld按區域大小描繪xld

常用與對xld進行以面積、長、寬進行XLD的選擇操作。 select_shape_xld(XLD : SelectedXLD : Features, Operation, Min, Max : ) XLD&#xff1a;需要選擇的xld SelectedXLD:選擇后的xld Features:面積、長、高等 Operation&#xff1a;and、or等 Min&#xff1a;最小值門…

工業三防手持終端如何選

物聯宇手持終端作為工業級的數據采集器&#xff0c;目前[]()已廣泛應用在物流快遞、生產制造、零售、醫療、公共事業等領域。由于工業環境的復雜性&#xff0c;手持終端在惡劣的環境下作業&#xff0c;在性能、穩定性、電池耐用性上的要求都較高&#xff0c;同時還必須采用一些…

centos7 安裝python3

1.查看是否已經安裝Python CentOS 7.2 默認安裝了python2.7.5 因為一些命令要用它比如yum 它使用的是python2.7.5。 使用 python -V 命令查看一下是否安裝Python 然后使用命令 which python 查看一下Python可執行文件的位置 可見執行文件在/usr/bin/ 目錄下&#xff0c;切換到該…

centos svn 的搭建

一. SVN 簡介 Subversion(SVN) 是一個開源的版本控制系統, 也就是說 Subversion 管理著隨時間改變的數據。 這些數據放置在一個中央資料檔案庫(repository) 中。 這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏…

halcon邊緣提取和檢測常用方法

轉自&#xff1a;http://blog.csdn.net/Bob_qiuxu/article/details/46924969 一、邊緣提取 1、設置ROI興趣區域 2、快速二值化&#xff0c;并連接相鄰區域。 這樣做的目的是進一步減少目標區域&#xff0c;通過二值化將目標區域大概輪廓提取出來 3、提取最接近目標區域的輪廓…

oracle sqlplus常用命令

轉自&#xff1a;https://www.cnblogs.com/wdx8927304/p/7927613.html 一、sys用戶和system用戶Oracle安裝會自動的生成sys用戶和system用戶(1)、sys用戶是超級用戶&#xff0c;具有最高權限&#xff0c;具有sysdba角色&#xff0c;有create database的權限&#xff0c;該用戶默…

使用css繪制小三角

<div style"width:0;height:0;overflow: hidden;border-top:4px solid transparent;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid red; "></div>轉載于:https://www.cnblogs.com/boonook/p/8570442.h…