Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "ftp 10.92.2.1"
    Sleep 500
    WshShell.SendKeys "root{enter}"
    Sleep 500
    WshShell.SendKeys "1243{enter}"
    Sleep 500
    WshShell.SendKeys "bin{enter}" 
    Sleep 500
    WshShell.SendKeys "lcd " & Left(strBackupDir, Len(strBackupDir) - 1) & "{enter}" 
    Sleep 500
    WshShell.SendKeys "get " & strRemoteDir & strBackupNameGz & "{enter}"
    Sleep 500
    WshShell.SendKeys "quit{enter}"
以上代码是从远程主机,下载一个文件,能够满足要求。但执行时有DOS窗口,而且期间还不能点击其它窗口,否则执行会出错!我希望能隐藏DOS窗口在后台执行。
求教有什么方法?或者只要能够满足要求,改实现方法也行,拜谢!

解决方案 »

  1.   

    试试以下这样:
    WshShell.Run "ftp 10.92.2.1" , SW_HIDE
      

  2.   

    ftp.exe可从文件读取命令
    f = "c:\a.tmp"Open f For Output As 1
    Print #1, _
        "open 10.92.2.1" & vbCrLf & _
        "root" & vbCrLf & _
        "1243" & vbCrLf & _
        "bin" & vbCrLf & _
        "lcd " & Left(strBackupDir, Len(strBackupDir) - 1) & vbCrLf & _
        "get " & strRemoteDir & strBackupNameGz & vbCrLf & _
        "quit" & vbCrLf
    Close #1Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "ftp -s:""" & f & """", 0
    Set WshShell = Nothing
      

  3.   

    WshShell.Run 的第三个参数可以指明是否等待程序执行结束再返回,默认是False,即不等待。