2011-04-08 72 views
0

您好,我正在使用VB.Net 2010 framework 2.0。 在我的應用程序中,我想用Process.start運行Setup.exe。 我想知道啓動我的應用程序的用戶是否有權運行setup.exe 感謝您提前答覆。獲取當前用戶的權限

+0

我加了一個「窗口」的標籤,以你的問題,否則,目前還不清楚哪些操作系統正在解決。 – 2011-04-08 14:40:32

+0

['IsUserAnAdmin'函數](http://msdn.microsoft.com/zh-cn/library/bb776463.aspx)是迄今爲止最簡單的方法,但您必須通過P/Invoke才能獲得在它。我不知道.NET Framework提供了什麼;我很久以前就包裝了「IsUserAnAdmin」。 – 2011-04-08 15:05:20

+0

可能重複[C#:檢測如果使用提升特權運行?](http://stackoverflow.com/questions/1220213/c-detect-if-running-with-elevated-privileges) – 2011-04-08 15:05:27

回答

1

呼叫

new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) 
+0

是否足以覆蓋海拔?我認爲對於沒有提升的管理員,會返回'false'。 – 2011-04-08 14:47:25

+0

我不知道... – SLaks 2011-04-08 14:49:13

+0

從一個快速的LinqPad測試看起來我是對的。我想在技術上你的代碼是正確的(它只會返回true,如果你*升高),但這並不一定意味着你*不能*運行它。血腥的UAC :-) – 2011-04-08 15:04:06