我需要提高UAC屏蔽。我發現網上的代碼使用IsAdmin提升UAC屏蔽()
MyBase.OnLoad(e)
If Not IsAdmin() Then
AddShield(Me.elevateButton)
End If
但它不起作用。它返回IsAdmin()上的錯誤,說「IsAdmin()沒有聲明」 請告訴我如何使用它,以及如何提高UAC盾。
感謝
我需要提高UAC屏蔽。我發現網上的代碼使用IsAdmin提升UAC屏蔽()
MyBase.OnLoad(e)
If Not IsAdmin() Then
AddShield(Me.elevateButton)
End If
但它不起作用。它返回IsAdmin()上的錯誤,說「IsAdmin()沒有聲明」 請告訴我如何使用它,以及如何提高UAC盾。
感謝
誤差基本上表明它不能找不到這個函數的定義。如果此函數是.NET框架的一部分,則需要確定函數屬於哪個名稱空間。一旦你知道了,你可以使用Imports
來「拉進」名字空間或者可以使用該函數的名字(包括它的名字空間)。例如,要訪問.NET File對象而不使用Imports
,則需要使用File
的全名(System.IO.File
)。
但是,在這種情況下,看起來IsAdmin不是.Net框架的一部分。因此,您必須提供定義爲IsAdmin()
的編程代碼。
要明確一點,關於名稱空間的段落不僅適用於.NET框架;它也適用於其他事物,包括作爲項目參考添加的外部DLL。
你需要補充一點:
<DllImport("shell32.dll", EntryPoint:="IsUserAnAdmin")> _
Public Shared Function IsUserAnAdmin() As Boolean
End Function
然後,你可以運行
If IsUserAnAdmin() = True Then....
當然,它會返回False不與提升權限的運行。
[Here](http://wyday.com/blog/2009/using-shield-icons-uac-and-process-elevation-in-csharp-vb-net-on-windows-2000-xp-vista - 和-7 /)是你想要達到的目標的指南。 – nik 2012-03-16 18:55:34