2017-05-24 16 views
0

私はコマンドラインにいくつかのキーストロークを送るスクリプトを書いています。しかし、値は完全に混乱してきています。理由は何でしょうか?ControleSendは奇妙な出力を送りますAutohotkey

BlockInput, on 
WinGetActiveTitle, Title 
DetectHiddenWindows, on 
ControlClick, x660 y391, Notepad 
ControlSend, , {Backspace}{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}, Notepad 
Sleep 30 
ControlSend, , 2, Notepad 
Sleep 30 
ControlSend, , echo stat_id: 78 : SETTING PRICE TO 2 toactivate: %Title% >> logs.txt{Enter} , ahk_exe cmd.exe 
ControlClick, x668 y640, Notepad 
ControlSend, , echo ACTION NEXT (after SETTING PRICE) >> logs.txt{Enter} , ahk_exe cmd.exe 
WinActivate, %Title% 
Send {Ctrl down}+{Ctrl up} 
Send {Ctrl down}+{Ctrl up} 
Send {Ctrl down}+{Ctrl up} 
Send {Ctrl down}+{Ctrl up} 
Send {Ctrl down}+{Ctrl up} 
BlockInput, off 
ExitApp 
Return 

これは、出力の一例です:あなたはCMDプロンプトにテキストを送信するためのcontrolSendを使用すべきではない

1に言及する

at-idec; ho78 B: EFSOETRTEI SNGCR PERENIC ESH TOOOT 2 DOTNOEAC >T>I valotges;. tixqt 

echo ACTION NEXT (after SETTING PREICCEHO) >A>CT lioogn s.ntexxtt 
+0

はあなたの問題を解決するために、私はできたインストールした後、信頼性が高いことがクリンクを見つけますか? – GroggyOtter

答えて

3

かなりの数のこと)。代わりにRun, % Compsecを使用する必要があります。 ComSpecはcmd.exeのショートカットです。ですから、Run, % Compsecを実行すると、cmdプロンプトの横にあるものをそのまま渡すだけです。 IPCONFIGを実行するための例:Run, % ComSpec " /k ipconfig"

簡単に覚えておくこと/kは「それは完了だときに開いて、プロンプトのコマンドを続ける」ということを覚えて、使用することを切り替えて/cは、「コマンドが実行された後、それを閉じる」します。

また、Expressionと非表現の違いを理解してください。コードの 次の行が異なって見えるが、各ラインは、まったく同じことを行います。

Run, % ComSpec " /k ipconfig" 
Run, %ComSpec% /k ipconfig 

2)の代わりに{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}を書いて、代わりに、あなたはキー名の後が、前にrepatedキーをしたい回数を含めます閉じ中括弧。 {Backspace 6}。これはどのキーでも機能します。

3)BlockInputは危険なコマンドになる可能性がありますが、通常は可能な限り避けるように他の人にアドバイスします。 Control Sendの代わりにRun ComSpecを使用すると、BlockInputを使用する必要がなくなります。

4)あなたが最初にやっていた問題は、テキストがあまりにも速く送信されることと関連していた可能性があります。 SetKeyDelayで送信速度を下げてください。


この交換してみてください:あなたがコンソールに送信したい場合は選択肢がある

Run, % ComSpec " /k echo stat_id: 78 : SETTING PRICE TO 2 toactivate: " Title " >> logs.txt" 
0

:これにより

ControlSend, , echo stat_id: 78 : SETTING PRICE TO 2 toactivate: %Title% >> logs.txt{Enter} , ahk_exe cmd.exe