我使用AutoIt打开了一个RDP会话。这是代码:
$host = "" ; <---- IP
$hGUI = GUICreate("Terminal Serveur", 952, 675, -1, -1, $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
$oRDP = ObjCreate("MsTscAx.MsTscAx.2")
$oRDP_Ctrl = GUICtrlCreateObj($oRDP, 64, 44, 800, 600)
GUICtrlSetResizing(-1, $GUI_DOCKALL)
GUICtrlSetStyle($oRDP_Ctrl , $WS_VISIBLE)
$oRDP.DesktopWidth = 800
$oRDP.DesktopHeight = 600
$oRDP.Fullscreen = False
$oRDP.ColorDepth = 16
$oRDP.AdvancedSettings3.SmartSizing = True
$oRDP.Server = $host
$oRDP.UserName = "" ; <--- Username
$oRDP.Domain = ""
$oRDP.AdvancedSettings2.ClearTextPassword = "" ; <--- Password
$oRDP.ConnectingText = "Connecting to " & $host
$oRDP.DisconnectedText = "Disconnected from " & $host
$oRDP.StartConnected = True
$oRDP.Connect()
$oShel = ObjCreate("shell.application")
$oShel_Ctrl = GUICtrlCreateObj($oShel, 64, 44, 800, 600)
GUICtrlSetStyle($oShel_Ctrl , $WS_VISIBLE)
GUISetState(@SW_SHOW, $hGUI)
Send ("#r") ; !!
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
$oRDP.Disconnect()
Exit
EndSwitch
WEnd
现在,我想在RDP会话中启动一个应用程序。我试过了#34;发送(#r)&#34;为了使用类似SendKeys的函数发送路径,但此命令在我的计算机上执行,而不是在远程计算机上执行。
我该怎么办?
答案 0 :(得分:0)
发送alt + home。这将在rdp会话中打开Windows搜索,然后您可以将其发送到例如发送(&#34;记事本&#34) 发送({输入})
答案 1 :(得分:0)
<强>更新强>
一个更简单的选择:
在代码中更改此行:
$ oRDP.Fullscreen = True
包含暂停以确保已加载控件
睡眠(5000)
发送(&#34;#r&#34;)
上一个回答:
让我建议一个不太优雅的解决方法&#39;但应该工作(测试好):
在远程桌面上快速查看Windows虚拟关键字(屏幕键盘或OSK)
找到短片图标的位置
在您的代码中,在此位置发送双击以启动屏幕键盘
然后将点击发送到所需键的位置
这样的事情:
Sleep(5000)
MouseClick("left",512,191,2) ;start virtual keyword
Sleep(1000)
MouseClick("left",553,807,1) ;click
Sleep(100)
MouseClick("left",633,740,1)
Sleep(1000)
Send("notepad")
Sleep(1000)
Send("{ENTER}")
(旁注:对于任何在远程桌面上都有快捷方式的可执行文件,只需发送双击,无需虚拟键盘)