pg1984 发表于 2008-9-27 22:49:42

如何向CMD命令行输入其它字符

请教各位:
用 RUN(@comspec) 打开CMD,那要怎样才行在CMD里输入任意字符呢?比如,输入:HELLO WOLD!??
谢谢!!!

l4ever 发表于 2008-9-27 23:48:55

send但是没法send中文

yjiawfn 发表于 2008-9-28 02:31:44

AU3根本就不支持中文,想输中文好象不可能

如果要输字符,Send还是可以的

Run("cmd.exe");-----------------运行dos窗口
Send("ipconfig /all");---------------输入命令
Send("{Enter}");-----------------回车,看效果

真会走路的废柴 发表于 2008-9-28 08:44:56

SendX
--------------------------------------------------------------------------------

向激活窗口发送中文字符。

#include <ACN_String.au3>
SendX ( "字符",标志)



参数

字符 要发送的字符。
标志 必需,设置为0或者非1为剪切板模式,1为发送ASC模式


什么叫做根本就不支持中文??

liongodmien 发表于 2008-9-28 10:07:10

默认按"CTRL+SPACE"是打开五笔的朋友试试:

Run(@ComSpec)
Send("^{space}wqvbkcg{space}ypjgggwhimya?^{space}")

用模拟键击代你在里面打字!

liongodmien 发表于 2008-9-28 10:12:31

用粘贴的办法:

Run(@ComSpec)
ClipPut("你好啊,我又用了一种办法来输入了!")
ClipGet()
Send("!{space}ep")

marcushe 发表于 2008-9-28 12:47:04

这里有高手么..怀疑

你可以利用$handle=Run(@cmdspec,@systemdir,$stdin_Child+$stdout_child)
这样输入输出就与$handle联系上了
然后你再用stdwrite($handle,"你要的内容") ----这一步比send好在完全与cmd窗口关联,不受其他窗口影响
用 $var=stdreadout($handle)得到最后输出的内容.
具体你要查阅stdwrite和run的用法.
我的版本:V3.2.12.1

sanhen 发表于 2008-9-28 13:02:09

其实这些东西论坛都发过了的,可是没人看。这里高手可能真的没有,也许真的值得怀疑。

http://www.autoitx.com/forum.php?mod=viewthread&tid=2728&extra=page%3D2

liongodmien 发表于 2008-9-28 21:14:26

原帖由 marcushe 于 2008-9-28 12:47 发表 http://www.autoitx.com/images/common/back.gif
你可以利用$handle=Run(@cmdspec,@systemdir,$stdin_Child+$stdout_child)
这样输入输出就与$handle联系上了
然后你再用stdwrite($handle,"你要的内容") ----这一步比send好在完全与cmd窗口关联,不受其他窗口影响
...

3.2.13.7 
$handle=Run(@comspec,@systemdir,$stdin_Child+$stdout_child)
StdinWrite($handle,"test") 无文字输出反应

居士给的贴里的方法,也没见反应

pcbar 发表于 2008-9-29 17:26:57

不知道,楼主想做什么,如果在程序中使用的话,应该这样
#include <Constants.au3>
Local $foo = Run("cmd.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
StdinWrite($foo, "echo autoit中文论坛"&@CRLF)
StdinWrite($foo)
Local $data
While True
        $data &= StdoutRead($foo)
        If @error Then ExitLoop
        Sleep(25)
WEnd
MsgBox(0, "Debug", $data)

如果只是为了打开一个cmd窗口,然后输入几个中文字符,A版,用sendx,U版需自定义个函数

pg1984 发表于 2008-10-6 11:56:34

有时我们要在命令行打开一些中文字符的路径,所以。。。。。。

liongodmien 发表于 2008-10-6 12:04:50

原帖由 pg1984 于 2008-10-6 11:56 发表 http://www.autoitx.com/images/common/back.gif
有时我们要在命令行打开一些中文字符的路径,所以。。。。。。
给个例子看看,不明白为什么要在DOS窗口里输入的?

pcbar 发表于 2008-10-6 20:16:33

原帖由 pg1984 于 2008-10-6 11:56 发表 http://www.autoitx.com/images/common/back.gif
有时我们要在命令行打开一些中文字符的路径,所以。。。。。。
如果只是打开特定路径可以这样
run_path("d:\游戏")
Func run_path($path = 'c:\');路径可以中文加空格
        if not FileExists($path) then
                MsgBox(64,"出错",'路径'&$path&'不存在!')
                Return
        Else
                Return Run(@ComSpec & " /k cd /d " & '"' & $path & '"')
        EndIf
EndFunc   ;==>run_path
页: [1]
查看完整版本: 如何向CMD命令行输入其它字符