Autohotkey 控件发送输出自动热键
我编写了一个脚本,将一些击键发送到我的命令行。然而,这些价值观被完全搞砸了。原因可能是什么Autohotkey 控件发送输出自动热键,autohotkey,Autohotkey,我编写了一个脚本,将一些击键发送到我的命令行。然而,这些价值观被完全搞砸了。原因可能是什么 BlockInput, on WinGetActiveTitle, Title DetectHiddenWindows, on ControlClick, x660 y391, Notepad ControlSend, , {Backspace}{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}, Notepad Sleep 30 Control
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
这是一个输出示例:
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
有很多事情要提 1) 您不应该使用controlsend将文本发送到cmd提示符。相反,您应该使用
Run,%Compsec
。ComSpec只是cmd.exe的快捷方式。因此,当您执行运行时,%Compsec
实际上只是传递cmd提示符旁边的内容。运行ipconfig的示例:Run,%ComSpec”/k ipconfig“
要轻松记住要使用哪个开关,请记住/k
将“在命令完成时保持命令提示符打开”,而/c
将“在命令运行后关闭它”
此外,请确保您理解表达式和非表达式之间的区别。
以下代码行看起来不同,但每一行的作用完全相同:
Run, % ComSpec " /k ipconfig"
Run, %ComSpec% /k ipconfig
2) 不要写{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}
,而是要包括在键名之后但在关闭的花括号之前重新绘制键的次数<代码>{Backspace 6}。这适用于任何键
3) BlockInput可能是一个危险的命令,通常我建议其他人尽可能避免使用它。通过使用Run ComSpec而不是control send,您无需使用BlockInput
4) 您最初遇到的问题很可能与文本发送速度过快有关。使用降低发送速度
尝试替换此:
ControlSend, , echo stat_id: 78 : SETTING PRICE TO 2 toactivate: %Title% >> logs.txt{Enter} , ahk_exe cmd.exe
为此:
Run, % ComSpec " /k echo stat_id: 78 : SETTING PRICE TO 2 toactivate: " Title " >> logs.txt"
有很多事情要提 1) 您不应该使用controlsend将文本发送到cmd提示符。相反,您应该使用
Run,%Compsec
。ComSpec只是cmd.exe的快捷方式。因此,当您执行运行时,%Compsec
实际上只是传递cmd提示符旁边的内容。运行ipconfig的示例:Run,%ComSpec”/k ipconfig“
要轻松记住要使用哪个开关,请记住/k
将“在命令完成时保持命令提示符打开”,而/c
将“在命令运行后关闭它”
此外,请确保您理解表达式和非表达式之间的区别。
以下代码行看起来不同,但每一行的作用完全相同:
Run, % ComSpec " /k ipconfig"
Run, %ComSpec% /k ipconfig
2) 不要写{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}
,而是要包括在键名之后但在关闭的花括号之前重新绘制键的次数<代码>{Backspace 6}。这适用于任何键
3) BlockInput可能是一个危险的命令,通常我建议其他人尽可能避免使用它。通过使用Run ComSpec而不是control send,您无需使用BlockInput
4) 您最初遇到的问题很可能与文本发送速度过快有关。使用降低发送速度
尝试替换此:
ControlSend, , echo stat_id: 78 : SETTING PRICE TO 2 toactivate: %Title% >> logs.txt{Enter} , ahk_exe cmd.exe
为此:
Run, % ComSpec " /k echo stat_id: 78 : SETTING PRICE TO 2 toactivate: " Title " >> logs.txt"
如果您确实希望发送到控制台,则有以下替代方案:
- 控制台结束()
- Windows 10:您可以尝试粘贴文本,然后发送输入旧版Windows-需要额外的软件:我发现Clink是可靠的,因为安装后您可以
发送^v
- 控制台结束()
- Windows 10:您可以尝试粘贴文本,然后发送输入旧版Windows-需要额外的软件:我发现Clink是可靠的,因为安装后您可以
发送^v