2

インポート ウィザード GUI を自動化する autohotkey スクリプトがあります。このスクリプトが存在するマシンに RDP で接続すると、スクリプトを実行でき、スクリプトは美しく機能します。スクリプトは 10 分のスケジュールで実行されます。スケジュールがたまたま実行されたときにマシンに RDP を接続すると、スクリプトがうまく実行されることがわかります。

RDP からログアウトすると (またはウィンドウを最小化するだけでも)、スクリプトはスケジュールどおりに実行され、インポート ウィザードの最初のウィンドウでハングします。RDP に戻ると、そこにそのウィンドウが表示され、次のウィンドウが表示されるのを待つためにスクリプトが停止しているのが見えます。開いているウィンドウで [OK] をクリックすると (これはまさに ahk スクリプトが行うことです)、スクリプトは続行され、正常に実行されます。

tldr: 自動ホット キー スクリプトは、見ているときにしか機能しません。

ここにいくつかのコードがあります...</p>

#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 から切断する代わりに、このバッチ ファイルを実行してください…</p>

for /f "usebackq skip=1 tokens=3" %%i in ( query user %USERNAME%) do %windir%\System32\tscon.exe %%i /dest:console

4

3 に答える 3