2012-03-16 3 views
-1

UACシールドを引き上げる必要があります。コード全体でコードが見つかりましたIsAdmin()を使用してUACシールドを作成する

MyBase.OnLoad(e) 
If Not IsAdmin() Then 
     AddShield(Me.elevateButton) 
End If 

しかし、動作しません。 「IsAdmin()が宣言されていません」というIsAdmin()のエラーを返します 私はそれをどのように使用でき、どのようにUACシールドを呼び出すことができるかアドバイスしてください。

おかげ

+0

[こちら](http://wyday.com/blog/2009/using-shield-icons-uac-and-process-elevation-in-csharp-vb-net-on-windows-2000-xp-vista -and-7 /)は、あなたが達成したいものの目安です。 – nik

答えて

0

はエラーは基本的には、この関数の定義を見つけることができないことができないことを示しています。この関数が.NETフレームワークの一部であった場合、関数が属するネームスペースを判別する必要があります。あなたがそれを知ったら、Importsを使用して名前空間を「プルイン」するか、その名前空間(名前空間を含む)を使用することができます。たとえば、Importsを使用せずに.NETファイルオブジェクトにアクセスするには、Fileのフルネーム(System.IO.File)を使用する必要があります。

ただし、IsAdminは.Netフレームワークの一部ではないようです。したがって、IsAdmin()を定義するプログラミングコードを提供する必要があります。

名前空間に関する段落は、.NETフレームワークにのみ適用されます。それは、プロジェクトへの参照として追加された外部DLLを含む他のものにも適用されます。あなたはこれを追加する必要が

0

<DllImport("shell32.dll", EntryPoint:="IsUserAnAdmin")> _ 
Public Shared Function IsUserAnAdmin() As Boolean 
End Function 

次に、あなただけの

If IsUserAnAdmin() = True Then.... 

を実行することができますそして、それはもちろん、Falseを返しますが、高いpriviledgesで実行されていません。

関連する問題