我有一個控制檯應用程序,它是由erp軟件調用開發的。如何使控制檯應用程序始終以管理員身份運行?
他們在erp內部調用我的應用程序,當他們這樣做時,我總是得到與沒有足夠權限執行相關的錯誤。
我已經檢查了「運行這個程序作爲管理員」複選框的所有用戶的EXE的屬性,但結果是一樣的。
我讀過一些關於增加一個清單,這將使UAC對話框的應用程序的提示,但是那不是我想要的,因爲應用程序會從服務器和客戶機上ERP被稱爲將看不到服務器的對話框。
有人可以解釋我如何使這個控制檯應用程序始終以管理員身份運行?
我有一個控制檯應用程序,它是由erp軟件調用開發的。如何使控制檯應用程序始終以管理員身份運行?
他們在erp內部調用我的應用程序,當他們這樣做時,我總是得到與沒有足夠權限執行相關的錯誤。
我已經檢查了「運行這個程序作爲管理員」複選框的所有用戶的EXE的屬性,但結果是一樣的。
我讀過一些關於增加一個清單,這將使UAC對話框的應用程序的提示,但是那不是我想要的,因爲應用程序會從服務器和客戶機上ERP被稱爲將看不到服務器的對話框。
有人可以解釋我如何使這個控制檯應用程序始終以管理員身份運行?
第一,明白在這個過程中會有一個UAC對話框。沒有辦法避免它。有幾種方法可以採用:
runas
動詞發起是一種方法。這給ERP開發人員帶來了負擔,他們可能無法做到這一點。UseShellExecute
設置爲true,否則清單將被忽略。如果您選擇第一個選項,每次啓動ERP應用程序時都會出現UAC提示。不好。如果您選擇第二個或第三個,則每次從ERP應用程序啓動您的控制檯應用程序時,都會提示UAC提示。可能是可以接受的。
你可能會考慮的另一件事是更加關注爲什麼控制檯應用程序需要管理員權限。你在寫C或者Program Files的根目錄嗎?你在更新HKLM中的註冊表項嗎?無論你在做什麼,你爲什麼這樣做?除非您的應用程序安裝或配置了某些東西(在這種情況下,獲得UAC提示是否合適),您應該嘗試對其進行調整,以便將其寫入預先存儲的用戶並且不需要提升。那麼在任何情況下,你將不再擔心如何升高它。
創建一個包含類似的批處理文件:
runas /env /user:%USERDOMAIN%\%USERNAME% cmd.exe /K YourProgramName.exe
其中,%USERDOMAIN%和%USERNAME%是由您的管理員帳戶的細節所取代。
然後運行它?
這將以該用戶身份運行該應用,但不會將該會話提升爲管理員的會話,即使該用戶擁有管理權限 – War 2016-12-09 17:07:13
添加到您的項目應用程序清單文件(添加 - >新建項目 - >常規 - >應用程序清單文件),並添加下面的節點進入app.manifest:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
http://msdn.microsoft.com/en-us/library/windows/desktop/bb756929.aspx
優秀的修復方法,謝謝 – Linef4ult 2015-11-28 16:57:36
這應該是答案,更直接簡單。 – 2017-05-09 06:17:50
爲什麼此控制檯程序需要管理權限? – 2013-03-13 18:26:39