PDA

Показать полную графическую версию : Как автоматически создавать модемное соединение (сделать инсталятор gprs модема)?


Xpeter
24-10-2006, 13:09
Доброе время.

У меня следующая проблема/вопрос. Я хочу сделать себе этакий инсталятор, который будет автоматически устанавливать драйвер usb-com порта и автоматически создавать модемное соединение (в моём случае gprs модемное соединение). Вроде сделать инсталятор драйвера возможно при помощи Driver Install Framework (http://www.microsoft.com/whdc/driver/install/default.mspx). Но вот как автоматизировать процесс создания модемного gprs соеднинения. И как это всё вместе объеденить в один инсталятор где будет нужно только нажимать на кнопочку "next"?

Любые идеи, ссылки на документацию или может быть просто ключевые слова очень приветсвуются!!!

Заранее спасибо всем,
Peter.

Xpeter
25-10-2006, 19:49
Люди! Помогите, пожалуйста!!! Может я не очень внятно задал вопрос... Упрощу задачу.

Как лучше написать следующее приложение. Запускаю приложение. У меня открывается окно, в котором я выбираю, например, билайн, или мегафон, жму Ок, и мне создаётся необходимое модемное соединение. На чём такое приложение лучше написать? Как создавать модемное соединение?

prokazzza
25-10-2006, 20:26
Xpeter

Cкрипт AutoIt для dial-up (не помню чей он) из которого ты можешь сделать полноценный EXE файл, пример внизу прикрепил, запустишь посмотришь,
если разбираешься с тонкостями AutoIt сможешь сделать и для своего gprs

Дополнительная информация (http://www.forum.oszone.net/showthread.php?p=370611&highlight=%CC%E0%F1%F2%E5%F0+%ED%EE%E2%FB%F5+%EF%EE%E4%EA%EB%FE%F7%E5%ED%E8%E9#post370611)

Run("rundll32.exe netshell.dll,StartNCW")
WinWaitActive ('Мастер новых подключений','Мастер новых подключений')
Send('{Enter}')
Sleep ('500')
WinWaitActive ('Мастер новых подключений','Подключить к Интернету для просмотра веб-узлов и чтения электронной почты.')
ControlClick ('Мастер новых подключений','Подключить к Интернету для просмотра веб-узлов и чтения электронной почты.','Button1')
Sleep ('500')
Send('{Enter}')

WinWaitActive ('Мастер новых подключений','Каким образом подключиться к Интернету')
ControlClick ('Мастер новых подключений','Каким образом подключиться к Интернету','Button2')
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Данное подключение использует модем и обычную телефонную линию или телефонную линию ISDN.')
ControlClick ('Мастер новых подключений','Данное подключение использует модем и обычную телефонную линию или телефонную линию ISDN.','Button1')
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Им&я поставщика услуг')
ControlSetText ( 'Мастер новых подключений', '', 'Edit1', 'ххххххххххххххх' )
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Номер &телефона:')
ControlSetText ( 'Мастер новых подключений', '', 'Edit1', 'хххххххххххххх,,,' )
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','&Имя пользователя:')
sleep (100)
ControlSetText ( 'Мастер новых подключений', '', 'Edit1', 'логинххххххххххххххх')
sleep (100)
ControlSetText ( 'Мастер новых подключений', '', 'Edit2', 'парольххххххххххххххх')
Send('{tab}')
sleep (100)
ControlSetText ( 'Мастер новых подключений', '', 'Edit3', 'пароль подтверждениехххххххххххххх')
Sleep ('500')
ControlCommand ( 'Мастер новых подключений', '', 'Button13', 'Check', '' )
ControlCommand ( 'Мастер новых подключений', '', 'Button2', 'Check', '' )
Sleep ('500')
Send('{Enter}')
WinWaitActive ('Мастер новых подключений','Завершение работы мастера новых подключений')
ControlCommand ( 'Мастер новых подключений', '', 'Button20', 'UnCheck', '' )
Send('{Enter}')
Exit

bogomolv
26-10-2006, 04:43
Xpeter
В качестве идеи посмотри
http://forum.oszone.net/showthread.php?p=342132&highlight=%F1%EE%E5%E4%E8%ED%E5%ED%E8%E5#post342132
Принципиальное преимущество этого способа - вместе с созданием соединения не только настраиваются его парметры, но и задается пароль!
Хотя для ADSL таким способом создать соединение я не смог.

Xpeter
27-10-2006, 15:49
Спасибо огромное!!!! Ещё только начал изучать, но уже похоже, что это то что нужно.

Lodoss
09-11-2006, 13:50
да, была идейка давно это сделать и сделал, но только в GUI и для обычного модемного соеденения.
Удобство в том что сам вводишь имя, пароль, телефон.
вот код:

#include <GUIConstants.au3>
;лог ошибок
AutoItSetOption ( "TrayIconDebug", 1 )
;информационное сообщение в трее
TrayTip("Установка", "Настройка интернет соединений", 5, 1)
;иконка сотика в трее
TraySetIcon("Shell32.dll",200)
;проверка на обладание правами администратора, иначе установка невозможна
$admin = IsAdmin ()
If $admin = 0 Then
MsgBox(16, "Ошибка", "Запуск программы возможен только с правами Администратора")
Exit
EndIf
;условие совместимости с ХР
If @OSVersion <> "WIN_XP" Then
MsgBox(16, " Ошибка", "Программа работает только под операционной системой Windows XP")
Exit
EndIf
;рисуем GUI
GUICreate("Интернет - ХР", 200, 125)
;фон окна
GUISetBkColor (0x00E0FFFF)
;лейблы
GUICtrlCreateLabel("Соеденение", 5, 9)
GUICtrlCreateLabel("Логин", 5, 32)
GUICtrlCreateLabel("Пароль", 5, 55)
GUICtrlCreateLabel("Телефон", 5, 77)
;запуск и отмена скрипта + о программе
$ok = GUICtrlCreateButton("OK", 12, 102, 50,18)
$cancel = GuiCtrlCreateButton ("Cancel",76,102,50,18)
$hl = GuiCtrlCreateButton ("?",140,102,50,18)
;название соеденения / внесите несколько по желанию
$in1 =GUICtrlCreateCombo ("Рол", 75, 5, 115, 18)
GUICtrlSetData($in1, "Билайн|Мегафон|Ранетка|Дарёнка|Электросвязь|Сиброн|Интернетка|Время|Мегабайт")
GUICtrlSetTip(-1,"введите название провайдера")
;ввод логина
$in2 = GUICtrlCreateInput ("", 75, 30, 115, 18)
GUICtrlSetTip(-1,"введите имя пользователя")
;ввод пароля
$in3 = GUICtrlCreateInput ("", 75, 53, 115, 18, 0x20)
GUICtrlSetTip(-1,"введите пароль")
;ввод телефона
$in4 = GUICtrlCreateCombo ("258888", 75, 76, 115, 18)
GUICtrlSetData($in4, "254563|123456|214551|777777|888888")
GUICtrlSetTip(-1,"введите номер телефона" &@CRLF &"ставить впереди букву P ненужно!!!")
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
;считываем введённые данные
$out1 = GUICtrlRead($in1)
$out2 = GUICtrlRead($in2)
$out3 = GUICtrlRead($in3)
$out4 = GUICtrlRead($in4)
;объявление переменных
Global $name = $out1, $login = $out2, $pass = $out3, $phone = $out4
$win = "Мастер новых подключений"
Select
Case $msg = $hl
MsgBox(64, "О программе", "Небольшая программка для создания новых интернет соеденений" _
&@CRLF& "облегчающая работу [Мастера Новых Подключений] в ХР", 10)
Case $msg = $ok
run("rundll32.exe netshell.dll,StartNCW")
winwait($win)
WinActivate($win)
send("{enter}")
winwait($win, "&Подключить к Интернету")
WinActivate($win, "&Подключить к Интернету")
send("{enter}")
winwait($win, "Каким образом")
WinActivate($win, "Каким образом")
send("{down}")
sleep(10)
send("{enter}")
winwait($win, "Через &обычный модем")
WinActivate($win, "Через &обычный модем")
send("{enter}")
;провайдер
winwait($win, "Им&я поставщика услуг")
WinActivate($win, "Им&я поставщика услуг")
ControlSetText("", "", "Edit1",$name)
sleep(10)
send("{enter}")
;телефон
winwait($win, "Введите номер телефона")
WinActivate($win, "Введите номер телефона")
ControlSetText("", "", "Edit1","p")
send("{end}")
send($phone)
send("{enter}")
;пароль
winwait($win, "Введите имя и пароль")
WinActivate($win, "Введите имя и пароль")
ControlSetText("", "", "Edit1",$login)
sleep(10)
send("{tab}")
ControlSetText("", "", "Edit2",$pass)
send("{tab}")
ControlSetText("", "", "Edit3",$pass)
sleep(10)
ControlCommand("", "", "Button2", "uncheck")
sleep(10)
send("{enter}")
;закрытие окна
winwait($win, "Завершение работы")
WinActivate($win, "Завершение работы")
;использовать подключение по умолчанию / uncheck - неиспользовать
ControlCommand("", "", "Button1", "check")
sleep(10)
ControlClick("", "", "Button23")
winwaitclose($win, "Завершение работы")
MsgBox(64, " Информация", "Интернет соединение " &$name& " - Установлено")
Case $msg = $cancel
ExitLoop
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd


надеюсь кому нибудь пригодится




© OSzone.net 2001-2012