如果我使用Visual Basic使用Shell()命令运行可执行文件,我将如何以管理员身份运行该可执行文件?我的方法至少在实践中有效,但是一个可执行文件无法正常运行,我认为这就是问题所在。
这是我正在尝试运行的命令的示例。
Shell("%temp%\ninite.exe")
编辑:对不起,这是VB.net,而不是VBA。我在那里放了一个坏标签。
答案 0 :(得分:0)
要严格遵守没有.NET依赖关系的VBA,您应该能够使用ShellExecute Win32函数。
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal lpOperation As String,
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
你可以通过" runas" lpOperation而不是更常见的" open" (通常称为动词)。请注意,这可能会导致出现一个对话框,提示用户输入凭据。
更好的方法可能是使用CreateProcess或CreateProcessAsUser函数,这可能是在Windows中启动任何内容的最强大方法,但这当然更复杂,我无法告诉您详细信息如何让它正常工作。