如何在Z在程序中调用FTP.EXE ,然后登陆FTP, 把服务器上文件抓下来.然后关闭FTP

xuxf 2005-12-07 03:28:40
谢谢
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mugi 2005-12-09
  • 打赏
  • 举报
回复
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;

begin
FillChar(StartupInfo, SizeOf(StartupInfo), 0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_SHOW; // 改成SW_HIDE试试,呵呵

CreateProcess(nil, 'fff.exe -s:c:\test 221.236.28.104', nil, nil,
False, 0, nil, 'c:\'{保存路径}, StartupInfo, ProcessInfo);

while (True) do
begin

if MsgWaitForMultipleObjects(1, ProcessInfo.hProcess, False, INFINITE,
QS_ALLINPUT) = WAIT_OBJECT_0 then
begin
Break;
end;

Application.ProcessMessages;

end;

if FileExists('c:\o2ma100.ojn'{下载下来的文件}) then
begin
ShowMessage('上传成功');
end else begin
ShowMessage('上传失败');
end;

CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
ly_liuyang 2005-12-09
  • 打赏
  • 举报
回复
还不如用IdFTP写一段简单的代码来得更实际
Indy官方提供Demo的,改改就能用
xuxf 2005-12-09
  • 打赏
  • 举报
回复
嘿嘿,脚本应该怎么写??还是没有搞定。。呵呵!郁闷!
xuxf 2005-12-08
  • 打赏
  • 举报
回复
嘿嘿,楼上的有具体的代码吗??或者一个小例子,谢谢

搞定好结贴
mugi 2005-12-07
  • 打赏
  • 举报
回复
把要运行的脚本生成为文本文件,然后执行的时候用-s参数:

ftp -s:文件名

-s:和文件名之间没有空格

如果要等待ftp传输完毕的话(也就是要得到ftp退出的事件通知的话),就要用CreateProcess来创建进程然后用WaitForSingleObject来进行等待,懒了,想知道的话回帖再说。
easyboot 2005-12-07
  • 打赏
  • 举报
回复
用shellexecute调用ftp
用 TerminateProcess结束ftp
柯本 2005-12-07
  • 打赏
  • 举报
回复
先用程序生成一角本文件,形式如下:
用户名
口令
bin
get xxx
bye
然后用winexec或shellexecute或createprocess调用ftp.exe,参数为:
ftp.exe -s:角本文件名 服务器IP
Tensionli 2005-12-07
  • 打赏
  • 举报
回复
shellexecute函数,功能运行外部程序,用法看看帮助。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧