【发布时间】:2013-07-08 16:11:11
【问题描述】:
我有一个自动热键脚本,可以自动导入向导 GUI。当我 RDP 进入该脚本所在的机器时,我可以运行该脚本,它运行良好。该脚本按 10 分钟的时间表运行。如果我在计划运行时将 RDP 导入到机器中,我可以看到脚本运行良好。
当我退出 RDP(甚至只是最小化窗口)时,脚本会按计划运行,并在导入向导的第一个窗口中挂起。如果我回到 RDP,我会看到那个窗口坐在那里,我看到我的脚本在等待下一个窗口出现时挂起。如果我在打开的窗口上单击“确定”(这正是 ahk 脚本所做的),那么我的脚本会继续运行并正常运行。
tldr:我的自动热键脚本仅在我观看时有效!
这里有一些代码……
#NoTrayIcon
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
saexe_file = C:\test.exe
company_file = Z:\ABC.SAI
import_file = D:\test.imp
Run, %saexe_file%
WinWait Simply Accounting Import - Select Company
WinActivate
Send %company_file%{Enter}
; IT HANGS HERE
WinWait Simply Accounting Import - Select File to Import from
WinActivate, Simply Accounting Import - Select File to Import from
Send %import_file%{Enter}
EDIT 07-12-2013:找到了解决方案:
运行此批处理文件,而不是断开与 RDP 的连接……
for /f "usebackq skip=1 tokens=3" %%i in (query user %USERNAME%) do %windir%\System32\tscon.exe %%i /dest:console
【问题讨论】:
-
错误信息是什么,你以什么权限运行脚本。
-
@Armin 没有错误消息。选择公司窗口打开。 AHK 激活它并发送文本,然后等待“选择文件”窗口打开。但它永远不会打开,因为“选择公司”窗口没有关闭。计划任务使用管理员用户帐户运行。
-
那你的其他程序好像有问题。
-
除非有用户登录,否则 GUI 交互可能无法工作。您使用的是控制台会话吗?解决这个问题的一种方法可能是使用 vnc 客户端,因此机器认为有人已登录并可以执行 GUI 交互。
标签: windows autohotkey remote-desktop