我的visual basic6应用程序的几个用户必须“以管理员身份运行”,其他用户则不能,只能双击。
有没有代码可以在程序打开时添加,以检查是否需要以管理员身份运行,然后打开一个窗口指示这一点?
发布于 2014-11-30 05:51:27
您将需要使用API来确定当前用户是否具有管理权限。
幸运的是,有一个函数为False返回0来指示当前用户的状态。即:IsUserAnAdmin
下面是如何声明和使用它:
'In a module file:
Public Declare Function IsUserAnAdmin Lib "Shell32" Alias "#680" () As Integer然后在你的Form_Load()中
Sub Form_Load()
If IsUserAnAdmin() = 0 Then
MsgBox "Not admin"
Else
MsgBox "Admin"
End If
End Sub注释:外壳函数IsUserAnAdmin is depricated。您可以使用类似于(伪代码)的内容替换该功能:
Boolean IsUserAdmin()
{
PSID administratorsGroup = StringToSid("S-1-5-32-544"); //well-known Administrators group
Boolean isAdmin;
if (not CheckTokenMembership(0, administratorsGroup, out isAdmin) then
isAdmin = false;
FreeSid(administratorsGroup);
return isAdmin;
}发布于 2014-12-01 04:29:01
只需将适当的"level“值添加到应用程序清单中。
清单片段示例:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo> 这会导致Windows引发UAC提示,而不需要用户执行任何特殊操作,也不需要添加任何代码。现在Windows XP已经死了,除了Windows Server2003的残留版本之外,它在所有支持的Windows版本中都可以工作,Windows Server2003计划在几个月内离开扩展支持。
https://stackoverflow.com/questions/27192086
复制相似问题