|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Создание VPN подключения с помощью Autoit, не прописывает имя сервера. |
|
|
[решено] Создание VPN подключения с помощью Autoit, не прописывает имя сервера.
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать В архивах форума нашла скрипт от «Котяры» создание диалап подключения, переделала под впн. На моем компьютере скрипт отрабатывает, .exe файл тоже (стоит Win XP SP2 Pro ). На других компьютерах пользователей (таже операционка )установка доходит до введения имени компьютера и останавливается.
Run("rundll32.exe netshell.dll,StartNCW") WinWaitActive ('Мастер новых подключений','Мастер новых подключений') Send('{Enter}') Sleep ('500') WinWaitActive ('Мастер новых подключений','Подключить к рабочей сети (используя удаленный доступ или VPN), чтобы можно было работать из дома, удаленного офиса или другого места.') ControlClick ('Мастер новых подключений','Подключить к рабочей сети (используя удаленный доступ или VPN), чтобы можно было работать из дома, удаленного офиса или другого места.','Button2') Sleep ('500') Send('{Enter}') WinWaitActive ('Мастер новых подключений','Создать подключение') ControlClick ('Мастер новых подключений','Создать подключение','Button2') Sleep ('500') Send('{Enter}') WinWaitActive ('Мастер новых подключений','Организация') ControlSetText ( 'Мастер новых подключений', '', 'Edit1', 'Name' ) Sleep ('500') Send('{Enter}') WinWaitActive ('Мастер новых подключений','Выберите, надо ли автоматически подключаться к Интернету или иной общей сети перед установлением виртуального подключения.') ControlClick ( 'Мастер новых подключений','Выберите, надо ли автоматически подключаться к Интернету или иной общей сети перед установлением виртуального подключения.','Button1') Sleep ('500') Send('{Enter}') WinWaitActive ('Мастер новых подключений','Имя компьютера или IP-адрес (например, microsoft.com или 157.54.0.1):') ControlSetText ( 'Мастер новых подключений', '', 'Edit1', 'Host' ) Sleep ('500') Send('{Enter}') ControlCommand ( 'Мастер новых подключений', '', 'Button8', 'Check', '' ) ControlCommand ( 'Мастер новых подключений', '', 'Button1', 'Check', '' ) Sleep ('500') Send('{Enter}') WinWaitActive ('Мастер новых подключений','Завершение работы мастера новых подключений') ControlCommand ( 'Мастер новых подключений', '', 'Button10', 'UnCheck', '' ) Send('{Enter}') Exit Брала скрип пример из книги Алексея Барабанова «Автоматизация MS Windows или AutoIt, как мечта эникейщика.» тоже самое :о(, у меня работает, на других компах доходит до прописывания имени компьютера и останавливается, не пойму в чем дело! Помогите плиииз! |
|
Отправлено: 17:14, 08-04-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Vic_tory:
WinWaitActive ('Мастер новых подключений','Выберите, надо ли автоматически подключаться к Интернету или иной общей сети перед установлением виртуального подключения.') |
|
Отправлено: 11:29, 09-04-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Спасибо за ответ, но дело в том что на компьютере на котором пишется скрипт все работает. На других компьютерах с той же ОС останавливается на активном окне 'Мастер новых подключений','Имя компьютера или IP-адрес (например, microsoft.com или 157.54.0.1):' и мигающим курсором в окне ввода имени сервера.
Если поставить таймаут то скрипт продолжает работу но в параметрах сервера остается пусто. |
Отправлено: 12:16, 09-04-2009 | #3 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Ипользуйте утилиту: Au3Info.exe (находится в корне папки AutoIt)
и посмотрите окно на котором останавливается выполнение скрипта. Окно должно иметь заголовок: Мастер новых подключений В тексте окна должен присутсвовать текст (точь в точь): Имя компьютера или IP-адрес (например, microsoft.com или 157.54.0.1): Поле ввода ip адреса должно иметь ClassnameNN: Edit1 |
------- Отправлено: 12:46, 09-04-2009 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Vic_tory, попробуйте так:
Run("rundll32.exe netshell.dll,StartNCW") $TITLE = "Мастер новых подключений" While WinWaitActive($TITLE, "", 3) $TEXT = WinGetText("") Select Case StringInStr($TEXT,'Этот мастер поможет:') Case StringInStr($TEXT,'Подключить к рабочей сети (используя удаленный доступ или VPN), чтобы можно было работать из дома, удаленного офиса или другого места.') ControlClick ("","","Button2") Case StringInStr($TEXT,'Создать подключение') ControlClick ("","","Button2") Case StringInStr($TEXT,'Организация') ControlSetText("","","Edit1","Name") Case StringInStr($TEXT,'Выберите, надо ли автоматически подключаться к Интернету или иной общей сети перед установлением виртуального подключения.') ControlClick ("","","Button1") Case StringInStr($TEXT,'Имя компьютера или IP-адрес (например, microsoft.com или 157.54.0.1):') ControlSetText("","","Edit1","Host") Case StringInStr($TEXT,'Создать это подключение:') ControlCommand("","","Button1","Check","") Case StringInStr($TEXT,'Завершение работы мастера новых подключений') ControlCommand("","","Button10","UnCheck","") Case Else Sleep ('100') ContinueLoop EndSelect Sleep ('500') Send('{Enter}') WEnd |
|
Отправлено: 13:38, 09-04-2009 | #5 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата proxy:
в начеле перед текстом окна стоит знак "&" поставила, не помогло Цитата proxy:
|
||
Отправлено: 13:48, 09-04-2009 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Спасибо amel27 ваш скрипт работает :о)
только я так и не поняла почему не работает мой :о( что было не так? |
Отправлено: 14:05, 09-04-2009 | #7 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать #region: - Options Opt('MustDeclareVars', 1) Opt('TrayIconDebug', 1) Opt('TrayIconHide', 0) Opt('WinDetectHiddenText', 1) #endregion HotKeySet('{ESC}', '_Pro_Exit') Local $iPid = Run('rundll32.exe netshell.dll,StartNCW') Local $sRasPhoneFilePath = @AppDataCommonDir & '\Microsoft\Network\Connections\Pbk\rasphone.pbk' Local $sRasPhoneFileText = FileRead($sRasPhoneFilePath) Local $iHwd, $sText Local $sTitle = 'Мастер новых подключений' Local $sConnectName = 'Connect name - Имя подключения' Local $sConnectIP = '150.100.0.12' Local $fAddShortcutOnDesktop = 1 While 1 $iHwd = _ProcessGetWindow($iPid) If BitAnd(WinGetState($iHwd), 2) Then ExitLoop WEnd While 1 $sText = WinGetText($iHwd) Select Case StringInStr($sText,'Этот мастер поможет:') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:2]') Case StringInStr($sText,'Подключить к рабочей сети (используя удаленный доступ или VPN), чтобы можно было работать из дома, удаленного офиса или другого места.') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:2]') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:6]') Case StringInStr($sText,'&Подключение к виртуальной частной сети') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:2]') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:8]') Case StringInStr($sText,'Введите в следующем поле имя для этого подключения.') While 1 If StringInStr($sRasPhoneFileText, '[' & _StringToUTF($sConnectName) & ']') OR $sConnectName == '' Then $sConnectName = InputBox('Внимание', 'Подключение с иминем "' & $sConnectName & '" уже существует' & @CRLF & @CRLF & _ 'Введите другое название для подключения:', '', '', 300, 150, -1, -1) Else ExitLoop EndIf WEnd ControlSetText($iHwd, '', '[CLASS:Edit; INSTANCE:1]', $sConnectName) ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:8]') Case StringInStr($sText,'Выберите, надо ли автоматически подключаться к Интернету или иной общей сети перед установлением виртуального подключения.') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:1]') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:10]') Case StringInStr($sText,'Введите имя узла или IP-адрес компьютера, к которому осуществляется подключение.') ControlSetText($iHwd, '', '[CLASS:Edit; INSTANCE:1]', $sConnectIP) ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:10]') Case StringInStr($sText,'Успешно завершено создание следующего подключения:') If $fAddShortcutOnDesktop Then ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:1]') ControlClick($iHwd, '', '[CLASS:Button; INSTANCE:21]') ExitLoop EndSelect Sleep('10') WEnd Func _Pro_Exit() Exit EndFunc Func _ProcessGetWindow($iPID, $iRet=1) Local $aWinList = WinList() Local $aRet[2] If IsString($iPID) Then $iPID = ProcessExists($iPID) For $i = 1 To UBound($aWinList)-1 If WinGetProcess($aWinList[$i][1]) = $iPID Then $aRet[0] = $aWinList[$i][0] ;Title $aRet[1] = $aWinList[$i][1] ;WinHandle If $iRet = 0 Then Return $aRet[0] If $iRet = 1 Then Return $aRet[1] Return $aRet EndIf Next Return SetError(1, 0, $aRet) EndFunc Func _StringToUTF($String) Local $sResult = "", $iCode Local $VarUTFArr = StringSplit($String, "") For $i = 1 To $VarUTFArr[0] $iCode = Asc($VarUTFArr[$i]) Select Case $iCode >= 192 And $iCode <= 239 $VarUTFArr[$i] = Chr(208) & Chr($iCode - 48) Case $iCode >= 240 And $iCode <= 255 $VarUTFArr[$i] = Chr(209) & Chr($iCode - 112) Case $iCode = 168 $VarUTFArr[$i] = Chr(208) & Chr(129) Case $iCode = 184 $VarUTFArr[$i] = Chr(209) & Chr(145) Case Else $VarUTFArr[$i] = Chr($iCode) EndSelect $sResult &= $VarUTFArr[$i] Next Return $sResult EndFunc |
------- Отправлено: 14:52, 09-04-2009 | #8 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Большое спасибо всем за ответы, скрипт работает.
но я так и не уяснила себе в чем было дело, хотелось бы знать, что бы не делать ошибок в будущем. |
Отправлено: 16:07, 09-04-2009 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:13, 10-04-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Автоматическое создание vpn подключения | steepz | Microsoft Windows 2000/XP | 3 | 13-03-2011 01:25 | |
[решено] Как править ресурсы в файлах с помощью AutoIT | CyberStyLe | AutoIt | 3 | 29-09-2009 08:07 | |
[решено] Aвторизация на сайте с помощью AutoIt | Yandex | AutoIt | 6 | 14-04-2009 20:08 | |
создание VPN подключения | garbals | Microsoft Windows NT/2000/2003 | 5 | 15-01-2009 02:23 | |
Автоматическое создание нового подключения к VPN | neWex | Автоматическая установка Windows 2000/XP/2003 | 4 | 23-05-2007 13:52 |
|