使用IsAdmin()提升UAC屏蔽

时间:2012-03-16 17:08:36

标签: vb.net

我需要提高UAC盾牌。我在网上找到了代码

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

但它不起作用。它在IsAdmin()上返回错误,说“未声明IsAdmin()” 请告知我如何使用它以及如何提升UAC防护罩。

由于

2 个答案:

答案 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不会随着提升的特权而运行。