Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: обойти rasdial.exe или как узнать его результат Добавлено: 20.09.05 13:36  

Автор вопроса:  student-uni
В общем проблема такая

У меня в проге запускаетса rasdial.exe /кому интересно c помощью CreateProcessWithLogon/

А потом когда появляетса виртуалный интерфеис стоит задача изменить Route table,
что я тоже успешно делаю и даже без Route.ехе /кому интересно тоже могу поделиться/

Но вот беда:
отследить точно момент появления нового виртуалного интерфеиса проблематично.
Т.Е. : прога запустила CreateProcessWithLogon (rasdial.exe ) и пошла далше,
а далше - стоит задача изменить Route table
и если rasdial.exe не успевает быренько создать виртуалный интерфеис,
то и Route не отрабатывает /нет интерфеиса!/

Я поставил задежку секунд 10 - все стало окей НО ...

Если следует к примеру не один а два или более запросов на запуск CreateProcessWithLogon (rasdial.exe )
/из разных копии моей проги ! ТЕ из разных прозессов/
то происходит буквално следуущее:

Винда /ХП/ ставит их в очередь. ТЕ: пока не законнектится первый rasdial.exe то второй висит.
это хорошо!
Законнектился первый - Винда коннектит второго.

И вот тут внимание - клоака !!

Если по каким то причинам второй интерфейс устанавливается быстрее первого,
/ну такое может быть вполне-ето значит он по "ip config" или по "route print"скорее просматриваетса/
то /оба прозесса потом ещё ждут мои 10 секунд/
 изза того, что второй интерфес отобразился шустрее то
Маршрут предназначавшийся для первого - назначается второму интерфеису и наоборот:
маршрут второго - первому.

Во попа ...!

И я обошел ету проблему тем что выставил флаг запрета на роутинг в табличке в базе данных
для всех пока один до конца не законектится и не высветится виртуалный интерфеис .
Но это же порнография!

Вопрос:
1. Кто нить пробовал устанавливать ВПН соединения средствми VB (.NET) без rasdial.exe ?
   /Изначално Известны пароль логин АйПи/
2. Кто нить знает как дождаться завершения процесса запущенного CreateProcessWithLogon или shell
- или получить от него какои то сигнал
- или заблокировать участок кода /хотя ето бред/
- или узнать какои из процессов породил тот или инои виртуалный интерфеис.

Всё
я кончил.
Спасибо всем кто напхает тупому.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 21.09.05 12:27
WaitForSingleObject, мб, дождаться завершения процесса?
Связаться по VPN можно, вроде, с помощью RasSetEntryProperties и RasDial

Ответить

Номер ответа: 2
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #2
Добавлено: 23.09.05 06:26
1. Не - я не пробовал...
2. Создаёшь поток (если это НЭТ, на старом васе лучше и не пытайся) и в нём по хэндлу ждёшь завершения. Если старый вася, то всю многопоточность в библию, а обратная связь через оконные сообщения.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам