Visual Basic Shell管理员?

时间:2014-11-12 17:22:43

标签: vb.net windows shell visual-studio-2013 administrator

如果我使用Visual Basic使用Shell()命令运行可执行文件,我将如何以管理员身份运行该可执行文件?我的方法至少在实践中有效,但是一个可执行文件无法正常运行,我认为这就是问题所在。

这是我正在尝试运行的命令的示例。

Shell("%temp%\ninite.exe")

编辑:对不起,这是VB.net,而不是VBA。我在那里放了一个坏标签。

1 个答案:

答案 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" (通常称为动词)。请注意,这可能会导致出现一个对话框,提示用户输入凭据。

更好的方法可能是使用CreateProcessCreateProcessAsUser函数,这可能是在Windows中启动任何内容的最强大方法,但这当然更复杂,我无法告诉您详细信息如何让它正常工作。