如在执行ftp命令后,自己写程序向其发送命令?

解决方案 »

  1.   

    纯Dos程序不是基于消息的,你怎么能向其发消息(命令)呢?
      

  2.   

    简单说就是如何在
    "Ftp>"状态下,由自己的程序输入"Bye"然后回车
      

  3.   

    利用Console程序替换标准输入输出句柄应该可以吧,我不清楚16bit行否,但WinNT的ftp.exe是32bit的,应该可以,具体怎么做我也没试过,研究一下GetStdHandle/CreateProcess etc.。
      

  4.   

    不调用系统的ftp  直接自己连接//就想那个flashget一样
    具体参考一下别人的资料吧
      

  5.   

    我只是举的例子如FTP,实际上不是
      

  6.   

    控制台程序不能使用消息!!!!
    所以你发了也没用!!!但是控制台窗口可以。
    找到那个控制台窗口(这个窗口是可以接受消息的。)
    然后再向这个窗口发送呵呵。以前做过一个这样的东东, 不过现在没有Source了。
    不过, 你可以参考《delphi5程序员指南》,这个上边有一个发送按键的例子。
      

  7.   

    DOS下最简单的是用通道,比如CMD.TXT中有以下内容:
    FTP 1.1.1.1
    GUEST
    guest
    BYE
    你用TYPE CMD.TXT | FTP命令就可以以GUEST为用户名和密码登录1.1.1.1然后退出。
    但对于不支持通道的东东只有做一个后台程序来模拟键盘输入了。
      

  8.   

    刚才我自己试了试
    觉得楼主的要求还是可以实现的楼主可以试试下面的程序procedure TForm1.Button3Click(Sender: TObject);
    var
        h: hwnd;
        //inputs: tagInput;
    begin
        h := findwindow(nil,pchar('c:\winnt\system32\cmd.exe'));
        if h<>0 then
        begin
            SetForeGroundWindow(h);
            SendMessage(h,wm_char,vk_return,0);
        end;
    end;
      

  9.   

    不过字符要一个一个的输入
    Sendmessage(h,wm_char,ord('a'),0);
      

  10.   

    拿楼主自己的例子来说
    procedure TForm1.Button3Click(Sender: TObject);
    var
        h: hwnd;
        //inputs: tagInput;
    begin
        h := findwindow(nil,pchar('c:\winnt\system32\cmd.exe - ftp'));
        if h<>0 then
        begin
            SetForeGroundWindow(h);
            SendMessage(h,wm_char,ord('a'),0);
        end;
    end;
      

  11.   

    不知顶楼的DX是想在纯DOS下弄还是在DOS窗口中弄,DOS窗口中楼上的方法就行,纯DOS下就用俺 的方法吧。
      

  12.   

    neng geng xiang xi ma