我制作了一個程式,它必須以管理員身份運行才能創建一個注冊表項。在我的程式創建注冊表項后,我在注冊表中創建另一個項以在啟動時運行我的程式,我不需要管理員權限。所以我更改了專案屬性,以便如果用戶想要運行我的程式,他/她必須以管理員身份運行它。創建我的第一個密鑰(我需要管理員權限)后,我將我的程式添加到使用注冊表啟動。
問題是我們無法在啟動時以管理員權限運行程式。第一次執行后我什至不需要管理員權限,因為創建了必要的密鑰。
我的問題:我怎樣才能讓我的程式只在第一次執行時要求管理員權限?
uj5u.com熱心網友回復:
在記憶體中有同一個程式的兩個行程,并且可能讓它們通過管道進行通信。用戶在沒有提升權限的情況下正常啟動程式。一旦需要海拔高度,您就可以使用ShellExecuteEx動詞“runas”啟動相同的程式。這個“runas”動詞將導致 UAC 提示。
如果您在原始行程的整個持續時間內只需要提升一次權限,那么您可以將一些引數傳遞給提升的行程,并完成它。但是,如果您需要提升的行程在不同的時間執行多個操作,那么您必須在兩個行程之間打開一個管道,才能將資料發送到提升的行程。這樣,您只有一次 UAC 提示,但您可以隨時執行需要提升的操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/459094.html
