FTP
Функции используемой библиотеки WinINet распознают CERN прокси (HTTP) и TIS FTP шлюзы (FTP). Если установлен Microsoft Internet Explorer, тогда поддерживаются и SOCKS прокси. Используются настройки прокси - серверов, заданные для MS Interntet Explorer (смотри "Control panel").

Вы можете использовать следующие функции:

Потоки в пределах сессии работают последовательно.
TCPIP.Name(arg1, arg2, ...) Описание Синхронизация
TCPIP.FTPConnect(host, user, passwd, port, sessionId) Функция FTPConnect создает поток (sessionId), который выполняет подключение к FTP серверу.

Если поток создан (не путайте с успешным подключением) - возвращает значение true.

Когда поток завершается, он обращается к Вашему скрипту, и ищет там функцию с именем WM_FTP(sessionId, type, error, result) - если находит, то запускает ее.

type =  "WM_FTPCONNECT" 

no wait - create thread
TCPIP.FTPDisconnect(sessionId) Закрывает описатели указанной FTP сессии. Если такой номер сессии не найден - возвращает false. wait
TCPIP.FtpGetCurrentDirectory(sessionId) Функия FtpGetCurrentDirectory создает поток, который должен узнать текущую директорию FTP сервера.

Все аналогично FtpConnect, но

type =="WM_FTPGETCURRENTDIRECTORY" 

no wait - create thread
TCPIP.FtpSetCurrentDirectory(sessionId, directory) Функция FtpSetCurrentDirectory создает поток, который должен изменить текущую директорию на FTP сервере.

type == "WM_FTPSETCURRENTDIRECTORY" 

Warning: У этой функции код ошибки всегда 0, независимо от успешности смены директории. Поэтому смотрите аргумент result у функции WM_FTP - там будет действительная текущая директория.
no wait - create thread
TCPIP.FTPls(sessionId) Функция FTPls создает поток, который должен вернуть список файлов и директорий в текущем каталоге на FTP сервере.

type =="WM_FTPLS" Аргумент result функции WM_FTP будет содаржать результат (одной строкой), с разделителем "|" т. е. "file1|file2|...|fileN"

no wait - create thread
TCPIP.FTPmkdir(sessionId, dir) Функция FTPmkdir создает поток, который должен создать директорию на FTP сервере (в текущем каталоге).

type == "WM_FTPMKDIR"

no wait - create thread
TCPIP.FTPrmd(sessionId, dir) Функция FTPrmdir создает поток, который должен удалить директорию на FTP сервере.

 type == "WM_FTPRMD"

no wait - create thread
TCPIP.FTPputfile(sessionId, file) Функция FTPputfile создает поток, который должен записать файл в директорию FTP сервера.

type == "WM_FTPPUTFILE"

no wait - create thread
TCPIP.FTPgetfile(sessionId, remotefile, newfile) Функция FTPgetfile создает поток, который должен получить файл с FTP сервера и записать его на диск.

type == "WM_FTPGETFILE"

no wait - create thread
TCPIP.FTPrm(sessionId, file) Функция FTPrm создает поток, который должен удалить файл на FTP сервере.

  type == "WM_FTPRM"

no wait - create thread
TCPIP.FTPmv(sessionId, existing_file, new_file) Функция FTPmv создает поток, который должен переименовать (переместить) файл на FTP сервере.

  type == "WM_FTPMV".

no wait - create thread
Вот пример (вы можете увидеть FTP соединение с помощью netstat - утилиты коммандной строки):
//JScript: ftp.w_js
var host = "ftp.host.com"
var user = "user"
var password = "password"


Window.AppendMenu(0,"MF_STRING",100,"Open FTP");
Window.AppendMenu(0,"MF_STRING",200,"Close FTP");
Window.AppendMenu(0,"MF_STRING",300,"Get Current Directory");
Window.DrawMenuBar();


function WM_FTP(sessionId, type, error, result)
{Window.Delete(1);
 Window.TextOut(1,50,30,"type: " + type);
 Window.TextOut(1,50,50,"sessionId: " + sessionId);
 Window.TextOut(1,50,70,"error: " + error);
 Window.TextOut(1,50,90,"result: " + result);
 Window.UpdateWindow();
};


function WM_COMMAND(id)
{ switch(id){ 
    case 100: TCPIP.FTPConnect(host, user, password, 21, 800);
              break;
    case 200: TCPIP.FTPDisconnect(800);
              Window.Delete(1);
              Window.UpdateWindow();
              break;
    case 300: TCPIP.FTPGetCurrentDirectory(800);
  };
};
'VBScript: ftp.w_vbs
host = "ftp.host.com"
user = "user"
password = "password"

Window.AppendMenu 0,"MF_STRING",100,"Open FTP"
Window.AppendMenu 0,"MF_STRING",200,"Close FTP"
Window.AppendMenu 0,"MF_STRING",300,"Get Current Directory"
Window.DrawMenuBar

Function WM_FTP(sessionId,tp,err,result)
 Window.Delete 1
 Window.TextOut 1,50,30,"type: " & tp
 Window.TextOut 1,50,50,"sessionId: " & sessionId
 Window.TextOut 1,50,70,"error: " & err
 Window.TextOut 1,50,90,"result: " & result
 Window.UpdateWindow
End Function

Function WM_COMMAND(id)
 Select Case id
    Case 100
     TCPIP.FTPConnect host, user, password, 21, 800
    Case 200
     TCPIP.FTPDisconnect(800)
     Window.Delete(1)
     Window.UpdateWindow
    Case 300 
     TCPIP.FTPGetCurrentDirectory(800)
  End Select
End Function
содержание
Дополнительный хост скриптов
Microsoft, JScript, VBScript, "Internet Explorer" are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.