VB6,WScript.Shell:运行方式在使用SendKey发送时无法识别密码
我有一个应用程序需要以提升的权限运行。我正在创建一个WScript.Shell对象,使用管理员用户名调用runas,然后使用SendKeys发送密码 出于某种奇怪的原因,这不起作用,我收到一条未知的用户名或密码消息。密码绝对是正确的。当我尝试从应用程序启动窗口,但手动输入密码时,一切正常 代码如下:VB6,WScript.Shell:运行方式在使用SendKey发送时无法识别密码,vb6,wsh,Vb6,Wsh,我有一个应用程序需要以提升的权限运行。我正在创建一个WScript.Shell对象,使用管理员用户名调用runas,然后使用SendKeys发送密码 出于某种奇怪的原因,这不起作用,我收到一条未知的用户名或密码消息。密码绝对是正确的。当我尝试从应用程序启动窗口,但手动输入密码时,一切正常 代码如下: Public Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long) Private Function RunExecutabl
Public Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)
Private Function RunExecutableAs(executableName As String, userName As String, password As String) As Boolean
Dim shell As Object
Dim result As Long
Set shell = CreateObject("Wscript.shell")
result = shell.run("C:\Windows\System32\cmd.exe /k runas /user:""" + userName + """ """ + executableName + """", 2, False)
If result = 0
Sleep 1000
shell.SendKeys password + "{ENTER}"
Set shell = Nothing
RunExecutableAs = True
End If
End Function
使用CreateProcessWithLogonSendKeys将不起作用。该对话框应该出现在安全桌面上,但它无法到达。这个世卫组织的概念很诡异,不管怎样,UAC对话应该由一个真实的人来处理。