Input 使用AutoIt将输入发送到命令行

Input 使用AutoIt将输入发送到命令行,input,command-line,exe,executable,autoit,Input,Command Line,Exe,Executable,Autoit,我是autoit新手,正在尝试自动输入.exe程序。此可执行文件没有gui,从命令窗口运行,因此我可以使用autoit通过命令窗口发送特定于程序的输入吗?如果是这样的话,我该怎么做呢 Local $engine= "C:\Users\Davis\Desktop\Chess engine\stockfish32bit.exe" Local $PID = RunWait(@ComSpec & " /k " & $engine, "", "@SW_MAXIMIZE") ;Insert

我是autoit新手,正在尝试自动输入.exe程序。此可执行文件没有gui,从命令窗口运行,因此我可以使用autoit通过命令窗口发送特定于程序的输入吗?如果是这样的话,我该怎么做呢

Local $engine= "C:\Users\Davis\Desktop\Chess engine\stockfish32bit.exe"
Local $PID = RunWait(@ComSpec & " /k " & $engine, "", "@SW_MAXIMIZE")
;Insert code that sends program "uci" as input

这个简单的示例演示了如何与以前运行的程序通信

; Demonstrates the use of StdinWrite()
#include <Constants.au3>

Local $foo = Run("sort.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; Write string to be sorted to child sort.exe's STDIN
StdinWrite($foo, "rat" & @CRLF & "cat" & @CRLF & "bat" & @CRLF)
; Calling with no 2nd arg closes stream
StdinWrite($foo)

; Read from child's STDOUT and show
Local $data
While True
    $data &= StdoutRead($foo)
    If @error Then ExitLoop
    Sleep(25)
WEnd
MsgBox(0, "Debug", $data)
;演示StdinWrite()的用法
#包括
本地$foo=Run(“sort.exe”,@SystemDir,@SW\u HIDE,$STDIN\u CHILD+$STDOUT\u CHILD)
; 将要排序的字符串写入子sort.exe的STDIN
StdinWrite($foo,“rat”和@CRLF&“cat”和@CRLF&“bat”和@CRLF)
; 没有第二个参数的呼叫关闭流
StdinWrite($foo)
; 读孩子的书和表演
本地$数据
虽然是真的
$data&=stdoutrade($foo)
如果@error,那么ExitLoop
睡眠(25)
温德
MsgBox(0,“调试”,$data)

这个简单的示例演示了如何与以前运行的程序通信

; Demonstrates the use of StdinWrite()
#include <Constants.au3>

Local $foo = Run("sort.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; Write string to be sorted to child sort.exe's STDIN
StdinWrite($foo, "rat" & @CRLF & "cat" & @CRLF & "bat" & @CRLF)
; Calling with no 2nd arg closes stream
StdinWrite($foo)

; Read from child's STDOUT and show
Local $data
While True
    $data &= StdoutRead($foo)
    If @error Then ExitLoop
    Sleep(25)
WEnd
MsgBox(0, "Debug", $data)
;演示StdinWrite()的用法
#包括
本地$foo=Run(“sort.exe”,@SystemDir,@SW\u HIDE,$STDIN\u CHILD+$STDOUT\u CHILD)
; 将要排序的字符串写入子sort.exe的STDIN
StdinWrite($foo,“rat”和@CRLF&“cat”和@CRLF&“bat”和@CRLF)
; 没有第二个参数的呼叫关闭流
StdinWrite($foo)
; 读孩子的书和表演
本地$数据
虽然是真的
$data&=stdoutrade($foo)
如果@error,那么ExitLoop
睡眠(25)
温德
MsgBox(0,“调试”,$data)

这个简单的示例演示了如何与以前运行的程序通信

; Demonstrates the use of StdinWrite()
#include <Constants.au3>

Local $foo = Run("sort.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; Write string to be sorted to child sort.exe's STDIN
StdinWrite($foo, "rat" & @CRLF & "cat" & @CRLF & "bat" & @CRLF)
; Calling with no 2nd arg closes stream
StdinWrite($foo)

; Read from child's STDOUT and show
Local $data
While True
    $data &= StdoutRead($foo)
    If @error Then ExitLoop
    Sleep(25)
WEnd
MsgBox(0, "Debug", $data)
;演示StdinWrite()的用法
#包括
本地$foo=Run(“sort.exe”,@SystemDir,@SW\u HIDE,$STDIN\u CHILD+$STDOUT\u CHILD)
; 将要排序的字符串写入子sort.exe的STDIN
StdinWrite($foo,“rat”和@CRLF&“cat”和@CRLF&“bat”和@CRLF)
; 没有第二个参数的呼叫关闭流
StdinWrite($foo)
; 读孩子的书和表演
本地$数据
虽然是真的
$data&=stdoutrade($foo)
如果@error,那么ExitLoop
睡眠(25)
温德
MsgBox(0,“调试”,$data)

这个简单的示例演示了如何与以前运行的程序通信

; Demonstrates the use of StdinWrite()
#include <Constants.au3>

Local $foo = Run("sort.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; Write string to be sorted to child sort.exe's STDIN
StdinWrite($foo, "rat" & @CRLF & "cat" & @CRLF & "bat" & @CRLF)
; Calling with no 2nd arg closes stream
StdinWrite($foo)

; Read from child's STDOUT and show
Local $data
While True
    $data &= StdoutRead($foo)
    If @error Then ExitLoop
    Sleep(25)
WEnd
MsgBox(0, "Debug", $data)
;演示StdinWrite()的用法
#包括
本地$foo=Run(“sort.exe”,@SystemDir,@SW\u HIDE,$STDIN\u CHILD+$STDOUT\u CHILD)
; 将要排序的字符串写入子sort.exe的STDIN
StdinWrite($foo,“rat”和@CRLF&“cat”和@CRLF&“bat”和@CRLF)
; 没有第二个参数的呼叫关闭流
StdinWrite($foo)
; 读孩子的书和表演
本地$数据
虽然是真的
$data&=stdoutrade($foo)
如果@error,那么ExitLoop
睡眠(25)
温德
MsgBox(0,“调试”,$data)


您是否尝试过将“uci”的发送编码为输入?我不熟悉autoit的语法和功能,因此我希望这里的人知道如何对其进行编码。请查看
ControlSend
函数-。这用于将文本字符串发送到窗口。试一试并发布结果:)非常感谢!我在脚本中添加了一个ControlSend函数和一个暂停,以允许应用程序打开,并且它可以完美地工作。太好了,很高兴能提供帮助!您可以在答案中发布您的代码(解决方案),因此,任何其他寻找类似问题和解决方案的人都可以找到它。您是否尝试过将“uci”的发送编码为输入?我不熟悉autoit的语法和功能,因此我希望这里的人会知道如何编码。请看一下
ControlSend
function-。这用于将文本字符串发送到窗口。试一试并发布结果:)非常感谢!我在脚本中添加了一个ControlSend函数和一个暂停,以允许应用程序打开,并且它可以完美地工作。太好了,很高兴能提供帮助!您可以在答案中发布您的代码(解决方案),因此,任何其他寻找类似问题和解决方案的人都可以找到它。您是否尝试过将“uci”的发送编码为输入?我不熟悉autoit的语法和功能,因此我希望这里的人会知道如何编码。请看一下
ControlSend
function-。这用于将文本字符串发送到窗口。试一试并发布结果:)非常感谢!我在脚本中添加了一个ControlSend函数和一个暂停,以允许应用程序打开,并且它可以完美地工作。太好了,很高兴能提供帮助!您可以在答案中发布您的代码(解决方案),因此,任何其他寻找类似问题和解决方案的人都可以找到它。您是否尝试过将“uci”的发送编码为输入?我不熟悉autoit的语法和功能,因此我希望这里的人会知道如何编码。请看一下
ControlSend
function-。这用于将文本字符串发送到窗口。试一试并发布结果:)非常感谢!我在脚本中添加了一个ControlSend函数和一个暂停,以允许应用程序打开,并且它可以完美地工作。太好了,很高兴能提供帮助!您可以在答案中发布您的代码(解决方案),以便任何其他寻找类似问题和解决方案的人都可以找到它。