Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2011, 12:05   #1
malcevanrei
Новичок
Джуниор
 
Регистрация: 02.03.2011
Сообщений: 1
По умолчанию Переустановить соединение через rasdial.exe

Здравствуйте! Имеется интернет webstream (GPON), подключение настроено мостом. Необходимо периодически дисконнектить соединение, через небольшую паузу снова соединить. Вот хотелось бы узнать, такая процедура будет выполнять эти действия:
Код:
procedure reconnect();
begin
WinExec('rasdial.exe GPON /disconnect',sw_hide);
sleep(10000);
WinExec('rasdial.exe GPON user password',sw_hide);
end;
Проверить нет возможности, потому как на удаленном компе настроен RDP и если коннект снова не произойдет, то соответственно к нему уже не подключишься, а бежать, точнее ехать до него очень далеко
Подскажите знающие плиз
Спасибо!
malcevanrei вне форума Ответить с цитированием
Старый 03.03.2011, 01:56   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Если предположить что программа будет работать пака не выполнит условие:
Код:
rasdial.exe GPON /disconnect
то можно через CreateProcess и WaitForSingleObject проверить WAIT_TIMEOUT и есть WAIT_TIMEOUT то, sleep(2000); и снова создавать connect.
Примерно так:
Код:
procedure TForm1.sButton1Click(Sender: TObject);
var
  si:TStartupInfo;
  Pinf:TProcessInformation;
  Ch:DWORD;
begin
  try
  ZeroMemory(@SI,SizeOf(SI));
  ZeroMemory(@PInf,SizeOf(Pinf));
  Si.cb:=SizeOf(SI);

  if not CreateProcess(PansiChar('rasdial.exe'),PansiChar('rasdial.exe GPON /disconnect'),nil,nil,false,0,nil,nil,si,Pinf) then
  begin
  RaiseLastOSError;
  end;

  ch:=WaitForSingleObject(Pinf.hProcess,infinite);
  If Ch <> WAIT_TIMEOUT then
  begin
    Sleep(2000);
  //Подключаемся
  end;
  finally
   CloseHandle(Pinf.hThread);
   CloseHandle(Pinf.hProcess);
  end;
end;
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подключить интернет через rasdial DinamoBrynsk Помощь студентам 1 16.12.2010 15:00
Соединение через два NAT Acharia C/C++ Сетевое программирование 8 11.09.2009 15:36
Соединение DLL и EXE Alex Cones Общие вопросы Delphi 2 19.04.2009 16:20
соединение с сервером через FTP magpro Работа с сетью в Delphi 6 19.09.2007 13:56
Соединение с БД через Интернет Kate Работа с сетью в Delphi 1 08.06.2007 08:49