Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Результат выполнения команды SSH


Автор: mfn9 18.9.2008, 10:52
Добрый день!
Интересует вопрос как можно уведеть результат выполнения команды
Делаю так:

     
Код

     pSend := TTelnetSend.Create;
     pSend.SSHLogin;
     pSend.Send('command');
     pSend.WaitFor('answer command');
     s:=pSend.RecvString;
     s:=pSend.SessionLog;
     ShowMessage(s);


но при выполнении команды WaitFor - зависает вся программа-это не подходит
поставил таймер 

Код

     
     pSend := TTelnetSend.Create;
     pSend.SSHLogin;
     pSend.Send('command');
     Timer1.Enabled:=True;

procedure Timer1Timer(Sender: TObject);
begin
     s:=pSend.RecvString;
     s:=pSend.SessionLog;
     if  Pos('answer command',s)<>0 then
                answ:='OK'
     else Timer1.Enabled:=True;    
end;


когда срабатывает таймер а команда еще не отработалась,я запускаю повтор таймера
но во второй раз срабатывания таймера мне не приходит ответ 
(хотя реально команда отработала!)

то есть ответ можно увидеть только при первом срабатывании таймера
сделать таймер больше не подходит(время выполнения команд всегда разное)
Заранее спасибо!)

Автор: Snowy 18.9.2008, 14:39
А с какой стати таймер должен срабатывать, если главный тред висит?
Брось на форму антифриз, или работай в отдельном треде.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)