我需要提高UAC盾牌。我在网上找到了代码
MyBase.OnLoad(e)
If Not IsAdmin() Then
AddShield(Me.elevateButton)
End If
但它不起作用。它在IsAdmin()上返回错误,说“未声明IsAdmin()” 请告知我如何使用它以及如何提升UAC防护罩。
由于
答案 0 :(得分:0)
错误基本上表明它无法找到此函数的定义。如果此函数是.NET框架的一部分,则需要确定函数所属的命名空间。一旦你知道了,就可以使用Imports
来“拉入”名称空间,或者可以使用函数的名称(包括其名称空间)。例如,要在不使用Imports
的情况下访问.NET File对象,您需要使用File
的全名(System.IO.File
)。
但是,在这种情况下,似乎IsAdmin不是.Net框架的一部分。因此,您必须提供定义IsAdmin()
的编程代码。
为了清楚起见,关于名称空间的段落不仅适用于.NET框架;它也适用于其他事物,包括已作为项目参考添加的外部DLL。
答案 1 :(得分:0)
您需要添加以下内容:
<DllImport("shell32.dll", EntryPoint:="IsUserAnAdmin")> _
Public Shared Function IsUserAnAdmin() As Boolean
End Function
然后你可以运行
If IsUserAnAdmin() = True Then....
它当然会返回False不会随着提升的特权而运行。