VB6,WScript.Shell:运行方式在使用SendKey发送时无法识别密码

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

我有一个应用程序需要以提升的权限运行。我正在创建一个WScript.Shell对象,使用管理员用户名调用runas,然后使用SendKeys发送密码

出于某种奇怪的原因,这不起作用,我收到一条未知的用户名或密码消息。密码绝对是正确的。当我尝试从应用程序启动窗口,但手动输入密码时,一切正常

代码如下:

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对话应该由一个真实的人来处理。