- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要一些代码,将管理员权限图标添加到命令按钮并在单击此类按钮时显示提示。我怎样才能在 VB6 中做到这一点?某些操作需要管理员权限,因为它们会替换 Windows Vista/7 不允许程序正常访问文件的文件和内容。
最佳答案
这是一个 ShellExecuteEx 的 VB6 示例,它允许您有选择地执行具有管理员权限的任何进程。您可以将其放入模块或类中。
Option Explicit
Private Const SEE_MASK_DEFAULT = &H0
Public Enum EShellShowConstants
essSW_HIDE = 0
essSW_SHOWNORMAL = 1
essSW_SHOWMINIMIZED = 2
essSW_MAXIMIZE = 3
essSW_SHOWMAXIMIZED = 3
essSW_SHOWNOACTIVATE = 4
essSW_SHOW = 5
essSW_MINIMIZE = 6
essSW_SHOWMINNOACTIVE = 7
essSW_SHOWNA = 8
essSW_RESTORE = 9
essSW_SHOWDEFAULT = 10
End Enum
Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long 'Optional
lpClass As String 'Optional
hkeyClass As Long 'Optional
dwHotKey As Long 'Optional
hIcon As Long 'Optional
hProcess As Long 'Optional
End Type
Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteExA" (lpSEI As SHELLEXECUTEINFO) As Long
Public Function ExecuteProcess(ByVal FilePath As String, ByVal hWndOwner As Long, ShellShowType As EShellShowConstants, Optional EXEParameters As String = "", Optional LaunchElevated As Boolean = False) As Boolean
Dim SEI As SHELLEXECUTEINFO
On Error GoTo Err
'Fill the SEI structure
With SEI
.cbSize = Len(SEI) ' Bytes of the structure
.fMask = SEE_MASK_DEFAULT ' Check MSDN for more info on Mask
.lpFile = FilePath ' Program Path
.nShow = ShellShowType ' How the program will be displayed
.lpDirectory = PathGetFolder(FilePath)
.lpParameters = EXEParameters ' Each parameter must be separated by space. If the lpFile member specifies a document file, lpParameters should be NULL.
.hwnd = hWndOwner ' Owner window handle
' Determine launch type (would recommend checking for Vista or greater here also)
If LaunchElevated = True Then ' And m_OpSys.IsVistaOrGreater = True
.lpVerb = "runas"
Else
.lpVerb = "Open"
End If
End With
ExecuteProcess = ShellExecuteEx(SEI) ' Execute the program, return success or failure
Exit Function
Err:
' TODO: Log Error
ExecuteProcess = False
End Function
Private Function PathGetFolder(psPath As String) As String
On Error Resume Next
Dim lPos As Long
lPos = InStrRev(psPath, "\")
PathGetFolder = Left$(psPath, lPos - 1)
End Function
关于visual-studio - 如何将 UAC 集成到我的 VB6 程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4754093/
我在使用 UAC 时遇到问题,并以其他用户身份执行非交互式进程(API,例如 CreateProcessAsUser 或 CreateProcessWithLogonW)。 我的程序旨在执行以下操作:
我有一个 VB6 应用程序,我已经销售了 12 年多。有时我的用户很难让应用程序运行。数据写入将进入/My Documents,因此除了安装文件(EXE 等)之外什么都没有进入 C:\Program
我见过几个与此相反的问题; “如何禁用虚拟化?”那不是我的问题。我想强制应用程序运行虚拟化 启用 . 我有一个在 Windows XP 下运行良好的应用程序,但是,因为它将其配置写入其工作目录(“C:
我有一个应用程序需要管理员权限才能执行某些操作。我只想在启动时显示 UAC 提示,然后提升。我不确定该怎么做,但我听说过诸如 list 之类的东西,但在任何地方都看不到明确的答案。 最佳答案 您需要一
我真的不明白Windows UAC ... 我需要我的程序能够更新文件并将文件添加到属于程序的特定目录。该目录可能是 Program Files 中应用程序的子目录,例如 c:\Program Fil
我一直在互联网上寻找答案,但似乎没有直接回答,所以我想我会问。 案例场景:我想截取当前在计算机屏幕上的内容。如果是 Windows 登录屏幕,我希望它是那样。如果它是事件用户的桌面,我想成为那个。如果
我希望这是我关于这个 SIP 主题的最后一个问题,我已经设法克服了最后一个 issue我曾通过请一位 friend 从远程计算机帮助我,我能够在计算机之间进行连接,但根据所有 examples 的说法
我有一个BHO,可以将网页捕获为图像,然后运行另一个过程pngcrush如此创建的图像。我在启用UAC的系统中面临的问题是,每次IE运行时,我都会收到关于从BHO生成的pngcrushing进程的警告
我的产品需要更改文件关联。为了允许它在 Vista 中以非管理员身份运行,我已将注册表更改代码移动到名为“assocsetup.exe”的单独二进制文件中。 启动时,Vista UAC 会正确请求以管
我使用 WiX 3.6 构建了一个 Windows Installer 程序包,其中嵌入了自定义托管 (C#) 操作。 在此阶段,安装要求 使用特定的本地管理员帐户(在本例中为 SharePoint
我的应用程序由服务器和客户端界面组成。我希望客户端能够请求服务器写入注册表项。现在我对 java 库进行了研究,发现了一些库。问题出在管理员权限上。当我运行一个简单的 java 程序从注册表中读取数据
我正在为我的应用程序制作一个安装程序,它在 xp 上工作正常,但在 vista 上,UAC 会出现问题,除非我以管理员身份运行,安装后运行我的应用程序时会出现意外错误,知道吗?我正在将应用程序安装在
我在 Vista/7 上遇到 UAC 问题。我的 UAC 执行级别 = requireAdministrator 的安装程序安装并运行我的应用程序。应用程序 UAC 执行级别 = asInvoker。
我已经使用 Verisign 签署了我的应用程序,将所有注册表变量存储在 HKCU 中以避免请求管理员权限,但 UAC 命令仍然提示用户他/她是否希望以下内容对其计算机进行更改。我该如何防止这种情况发
首先,我想强调的是,我并不是想做任何“下流”或“骇人听闻”的事情,也不是想对用户隐瞒任何事情。 在我的应用程序安装(使用 InstallShield LE)期间,Windows UAC 提示用户允许它
我有一个没有资源的应用程序(根本没有,所以也没有 UAC list )。此应用程序使用 CopyFile 将自身安装到 appdata/roaming 文件夹。它还设置了自动启动,因此它会在每次启动时
我已经阅读了几个关于 UAC 和特权提升的问题,但没有找到令人满意/全面的答案。 我有这种情况:在 Windows 6 或更高版本上,当用户打开配置窗口时,我必须在确定按钮上显示盾牌(BCM_SETS
我有一个类库,它在注册表 (HKLM\Software\XXX) 中保存系统范围的配置数据。该库用于各种 Windows 版本(XP、2003、7、2008 R2)上的各种应用程序(服务、Window
显示 UAC 提升提示时是否触发了任何窗口事件?我看过 SwitchDesktop,但看不到任何关于如何接收通知的提及。 我的 direct show 应用程序表现不佳,我希望能够在显示提示时暂停图表
我有兴趣在临时 session 中启动一个窗口,例如 UAC 提示的显示方式。一些人对这个概念有些兴趣,所以我想我应该在这里问一下。本质上,我们想要的是一个提升的窗口,例如 UAC“您确定要”提示,但
我是一名优秀的程序员,十分优秀!