VS2015中使用管理員身份執行程式

棉猴發表於2018-06-13

1 問題提出

Windows10+VS2015環境中,有些程式需要管理員身份才能正確執行。例如

HANDLE hDevice = CreateFile(_T("\\\\.\\PhysicalDrive0"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

if (hDevice == INVALID_HANDLE_VALUE)

{

return -1;

}

以上程式碼的功能是以可讀寫的許可權開啟硬碟。此時,如果VS2015沒有用管理員身份開啟,hDevice的值為INVALID_HANDLE_VALUE,即無法開啟硬碟。

2 問題解決

可以使用兩種方法解決以上問題,第一種是使用管理員身份開啟VS2015;第二種是使用管理員身份執行程式。

2.1 使用管理員身份開啟VS2015

可以通過兩種方法使用管理員身份開啟VS2015,第一種是滑鼠右鍵選單選擇,另外一種是對devenv.exe檔案附加管理員許可權。

2.1.1 滑鼠右鍵選單

選中VS2015圖示,之後在滑鼠右鍵選單中選擇“以管理員身份執行”。

2.1.2 devenv.exe檔案附加管理員許可權

devenv.exe是程式開發平臺Microsoft Visual Studio 2015使用者介面程式,雙擊VS2015圖示,實際上就是執行了該程式。devenv.exe檔案的位置在"VS2015安裝路徑\Common7\IDE\devenv.exe"

滑鼠選中devenv.exe檔案,在右鍵選單中選擇“相容性疑難解答”,如圖1所示。

 

1 相容性疑難解答

接下來在“程式相容性疑難解答”對話方塊中選擇“疑難解答程式”,如圖2所示。

 

2 疑難解答程式

接下來在“你注意到什麼問題”對話方塊中選擇“該程式需要附加許可權”,點選“下一步”,如圖3所示。

 

 

3 該程式需要附加許可權

等待一段時間後,彈出“故障排除已完成”對話方塊,選擇“是,為此程式儲存這些設定”,如圖4所示。

 

4 故障排除已完成

最後,在“疑難解答已完成”對話方塊中點選“關閉疑難解答”,如圖5所示。

 

5 疑難解答已完成

此後,再開啟VS2015時,就會彈出是否使用管理員身份執行程式的對話方塊,可以根據需要進行選擇。

2.2 使用管理員身份執行程式

如果已經用非管理員身份執行了VS2015,此時可以通過修改程式的配置實現以管理員身份執行程式。

使用非管理員身份的VS2015開啟要執行的程式程式碼,之後在VS2015選單欄中選擇“專案->xxx屬性”,在彈出的“屬性頁”對話方塊中選擇“配置屬性->鏈結器->清單檔案”,在對話方塊右側的“UAC執行級別”中選擇“requireAdministrator (/level='requireAdministrator')”,最後點選“應用”按鍵,如圖6所示。此時,就可以在非管理員身份開啟VS2015的時候,以管理員身份執行該程式了。

 

6 修改UAC執行級別

相關連結:

UACUAC的全稱是User Account Control,即使用者賬戶控制。是Windows Vista以及之後作業系統中一組新的基礎結構技術,可以幫助阻止惡意程式損壞系統,同時也可以幫助組織部署更易於管理的平臺。在VS2015中,UAC的預設許可權是asInvoker,許可權requireAdministrator即為使用管理員身份執行該程式。

相關文章