我做了一个程序,用createpipe获取createprocess的输入和输出,但是发现有些程序不能完全兼容。例如ftp输入密码,好像就是直接从控制台设备输入的,而不是从stdin输入。还有ftp〉的提示符也不见了,可能ftp程序发现不是控制台就修改了提示输出部分。不知道是否有什么好方法可以完全兼容控制台输入输出的,windows自带的telnet就可以,但程序不知道如何写,请高手指点。
调试欢乐多
http://www.brsbox.com/filebox/down/fc/02d018c57f55384bd69683ea0220da25你只要注意ftp.exe的参数就行了,我已经测试过了ftp.exe的回显,没有问题语法:
ftp [-v][-d][-i][-n][-g][-s:FileName][-a][-w:WindowSize][-A][Host]参数
-v
禁止显示 FTP 服务器响应。
/d
启用调试、显示在 FTP 客户端和 FTP 服务器之间传递的所有命令。
-i
传送多个文件时禁用交互提示。
-n
在建立初始连接后禁止自动登录功能。
-g
禁用文件名组合。Glob 允许使用星号 (*) 和问号 (?) 作为本地文件和路径名
的通配符字符。
-s:filename
指定包含 ftp 命令的文本文件。这些命令在启动 ftp 后自动运行。该参数不
允许带有空格。使用该参数而不是重定向 (<)。
-a
指定绑定 FTP 数据连接时可以使用任何本地接口。
-w:windowsize
指定传输缓冲的大小。默认窗口大小为 4096 字节。
-A
匿名登录到 FTP 服务器。
Host
指定要连接的计算机名、IP 地址或 FTP 服务器的 IPv6 地址。如果指定了主
机名或地址,则其必须是命令行的最后一个参数。
/?
在命令提示符下显示帮助。 2 ftp批处理文件的制作 新建两个文件ftpget.bat和ftpget.txt,前者就是我们要制作的批处理文件,
其内容为:
ftppath\ftp.exe -i -s:ftpget.txt host
其中ftppath为ftp所在目录,host为ftp服务器IP地址。
ftpget.txt文件内容为:
username
password
cd filepath
get filename1
get filename2
...
get filenamen
quit
其中,filepath是要下载文件所在的目录,filename1-->filenamen 是要下载的
文件名。
用这种方式来调用并回显,ftp.exe支持的参数太恶心了,没办法
517
ls用户名biweilun密码517,文件都列出来了吧