Войти

Показать полную графическую версию : [решено] Friendly Pinger - нужен скрипт введения серийника


Страниц : [1] 2

Shpionus
23-07-2009, 18:25
http://forum.oszone.net/thread-87579.html - описание моего инсталятора на основе уже установленной программы.
Осталось её зарегистрировать. Ввод серийника как полагается в окно регистрации программы вручную работает как положено, но как это автоматизировать? Я не силён в AutoIT, кто умеет попросил бы написать скрипт регистрации программы введением существующего серийника в окно регистрации программы.
Если есть желание сделать инсталятор как положено, с использованиеи дистрибутива, будет только лучше :) .

proxy
23-07-2009, 18:33
стучи в icq, обсудим )

Creat0R
23-07-2009, 23:22
proxy,
стучи в icq, обсудим ) »
Это можно было и в ПМ написать.

Shpionus, Обсуждение нелегального ПО на форуме запрещается (http://forum.oszone.net/rules.html) (3.18).

Если это ваша преобритённая программа, и требуется вставить в поля преобретённый серийный номер, то приведите то, что отображается в AutoIt Info Tool при наведении на полях ввода.

Shpionus
24-07-2009, 02:01
Где мной указано что это нелегальное ПО ? И вобще почему интересно на многих форумах запрещено его обсуждать? Ладно на второй вопрос можете не отвечать, а то скажете что я ругаюсь с модератором :(
Небыло негде указаний на нелегальность.
(приведите то, что отображается в AutoIt Info Tool при наведении на полях ввода.) я непонял о чём вы тут написали... Что такое "AutoIt Info Tool" ? И куда там что наводить надо? И вобще зачем это?

Creat0R
24-07-2009, 03:07
Где мной указано что это нелегальное ПО ? »
А я не говорил что вы указывали на легальное ПО, просто подобные вопросы вызывают подозрения, вот и всё.

я непонял о чём вы тут написали... Что такое "AutoIt Info Tool" ? »
Это инструмент для получения информации элементов окон. В установленной папке аутоита это файл Au3Info.exe.

куда там что наводить надо? »
На текстовое поле куда нужно ввести данные.

Если будут сложности, то лучше выложите файлы установки, и подробную инструкцию того, что нужно сделать автоматический (пошагово).

Shpionus
24-07-2009, 03:26
В установленной папке аутоита это файл Au3Info.exe.
Так это у меня должно быть установлено в системе что-то касающееся AutoIt ? Но у меня этого нет, где взять?
Выложить дистрибутив? Да без проблемм, куда?
А вот на счёт подробной инструкции незнаю, боюсь я её не смогу понятно написать :( Это надо думаю самому видеть. В кратце устанавливается программа, отвечаем на несколько вопросов инсталятора, после чего запускаем программу, и в меню "справка" есть пункт "Регистрация" открываем его и вписываем имя пользователя и ключ, жмём ОК и перезапускаем программу. Как ещё по пунктам всё это изложить незнаю, надо своими глазами видеть.

Creat0R
24-07-2009, 05:49
Так это у меня должно быть установлено в системе что-то касающееся AutoIt ? »
:yes: :cool:

А как вы ожидаете чтобы скрипт работал? exe'шник? Ну за вас всё делать никто не будет, хоть что-то на своей стороне сделайте, а установка AutoIt'а это минимальная мера.

у меня этого нет, где взять? »
Вся нужная инфа есть тут (http://forum.oszone.net/thread-129417.html).

Выложить дистрибутив? Да без проблемм, куда? »
Куда вам удобно, но прежде хочется узнать - сколько оно весит?

боюсь я её не смогу понятно написать »
Боятся не надо ;) - Я имел в виду со стороны пользователя, что требуется выполнить, только на автоматическом уровне.

Shpionus
24-07-2009, 06:35
Дистрибутив занимает 2 мб
Архив 1,34 мб:
http://multi-up.com/120877

Au3Info.exe при наведении на поля ввода показывает следующее:

Первый рисунок соответственно первое поле ввода имени, второй рисунок второе поле ввода самого ключа:

http://i007.radikal.ru/0907/3e/6d311e63048dt.jpg (http://radikal.ru/F/i007.radikal.ru/0907/3e/6d311e63048d.jpg.html)

http://i003.radikal.ru/0907/e9/951841b074c7t.jpg (http://radikal.ru/F/i003.radikal.ru/0907/e9/951841b074c7.jpg.html)

Creat0R
24-07-2009, 08:09
Shpionus, Вобщем вот что получилось (полная установка программы):

#include <GUIMenu.au3>
#include <WindowsConstants.au3>

;Friendly Pinger installation script (by G.Sandler, a.k.a CreatoR)

#Region ============= Settings ============
Global $sUserName = "User"
Global $sKey = "Key"

Global $sInstall_Path = "Default" ;Default will not change the path suggested by installer
Global $nLangSel = 2 ;Set the language selection (2 is russian, 0 = default - english)

Global $iBlockInput = 0 ;Block the user input during installation (1 -> block, 0 -> Do not block)
#EndRegion ==================================
;

#Region ============= Script =============
Run(@ScriptDir & "\FPinger_5_0.exe")
If @error Then Exit

If $iBlockInput Then BlockInput(1)

;Wait for the first window
WinWait("[CLASS:obj_Form;TITLE:Friendly Pinger]")

;Click Next button
ControlClick("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON29")

;Select "I accept the agreement"
ControlClick("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON6")

;Click Next button
ControlClick("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON29")

;Set the install path if neccessary
If $sInstall_Path <> "Default" Then
ControlSetText("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_EDIT5", $sInstall_Path)
Else
$sInstall_Path = ControlGetText("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_EDIT5")
EndIf

;Select the language
ControlFocus("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_COMBOBOX1")
ControlSend("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_COMBOBOX1", "{HOME}")
If $nLangSel > 0 Then ControlSend("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_COMBOBOX1", "{DOWN " & $nLangSel & "}")

;Click Next button
ControlClick("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON29")
ControlClick("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON29")

;Wait untill the installation is completed
While 1
If WinExists("[CLASS:obj_Form;TITLE:Friendly Pinger]", "Installation complete!") Then ExitLoop

If WinExists("[CLASS:#32770;TITLE:Friendly Pinger]", "Old template-files are stored in") Then
WinClose("[CLASS:#32770;TITLE:Friendly Pinger]", "Old template-files are stored in")
WinWaitClose("[CLASS:#32770;TITLE:Friendly Pinger]", "Old template-files are stored in")
EndIf

Sleep(100)
WEnd

;Remove not needed(?) checkboxes
ControlCommand("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON25", "Check")
ControlCommand("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON26", "UnCheck")
ControlCommand("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON27", "UnCheck")

;Click Finish button
ControlClick("[CLASS:obj_Form;TITLE:Friendly Pinger]", "", "obj_BUTTON29")

;Wait for Trial message window
WinWait("[CLASS:TToRegistryForm;TITLE:Friendly Pinger]")

;Get the button number to click
$nButton = ControlGetText("[CLASS:TToRegistryForm;TITLE:Friendly Pinger]", "", "TGroupBox1")
$nButton = Number(StringRegExpReplace($nButton, "(?i).*?(?:Nr.|№ )(\d+).*?", "\1"))

;Click the button to confirm the trial
ControlClick("[CLASS:TToRegistryForm;TITLE:Friendly Pinger]", "", "TButton" & 4-$nButton)

;Wait for main window to be active
WinWait("[CLASS:TFPingerMainForm]", "", 3)
WinActivate("[CLASS:TFPingerMainForm]")
WinWaitActive("[CLASS:TFPingerMainForm]", "", 3)

;No we click the Register item in menu
$hWnd = WinGetHandle("[CLASS:TFPingerMainForm]")

$hMenu = _GUICtrlMenu_GetMenu($hWnd)
$hHelp = _GUICtrlMenu_GetItemSubMenu($hMenu, 8) ;Help menu
$iItemID = _GUICtrlMenu_GetItemID($hHelp, 11) ;Third item from the bottom (zero-based)
;English (perhaps other as well) version have it a little bit up then in russian version
If $nLangSel <= 0 Then $iItemID = _GUICtrlMenu_GetItemID($hHelp, 10)

DllCall("User32.dll", "int", "PostMessage", "hwnd", $hWnd, "int", $WM_COMMAND, "int", $iItemID, "int", 0)

WinWaitActive("[CLASS:TRegisterForm;TITLE:Registration]", "", 3)

;If the registration window showed up, set the user name and the key, and then restart
If WinExists("[CLASS:TRegisterForm;TITLE:Registration]") Then
ControlSetText("[CLASS:TRegisterForm]", "", "TEdit1", $sUserName)
ControlSetText("[CLASS:TRegisterForm]", "", "TEdit2", $sKey)
ControlClick("[CLASS:TRegisterForm]", "", "TBitBtn3")

;Restart the program
WinClose($hWnd)
WinWaitClose($hWnd)

Run($sInstall_Path & "\FPinger.exe")
EndIf

If $iBlockInput Then BlockInput(0)
#EndRegion ============= Script =============
;

P.S
Я обычно не занимаюсь подобными скриптами, но у меня просто было пару свободных минут :coffee:

Shpionus
24-07-2009, 14:31
Хм, неожидал такой оперативности, спасибо!
А куда собственно ему серийник вписывать? Чтобы он его сам ввёл? И если это полная установка то как узнать на какие там кнопки он жмёт? Может я бы изменить хотел некоторые параметры установки :)

Creat0R
24-07-2009, 16:47
куда собственно ему серийник вписывать? »
Читайте комментарии в скрипте, там всё должно быть понятно.

как узнать на какие там кнопки он жмёт? Может я бы изменить хотел некоторые параметры установки »
А для этого уже читайте справку по AutoIt - для каждой функции смотрите действия и описания, и изменяйте что нужно.

Shpionus
08-10-2009, 21:21
При запуске того скрипта:

Autoit3.exe FPinger_5_0.au3

Он пишет: Eror reading the file: GUIMenu.au3

Удалил первые две строки из файла скрипта:

#include <GUIMenu.au3>
#include <WindowsConstants.au3>

Теперь начало писать следующее:
http://i058.radikal.ru/0910/f9/bc0cf2b4f67b.jpg

Sp01LeR
08-10-2009, 23:13
Удалил первые две строки из файла скрипта

Уважаемый, а у вас когда в Виндовсе ошибки выскакивают - Вы папку C:\Windows\ удаляете? :)

Shpionus
08-10-2009, 23:45
Непонял вопроса? А вы уважаемый сам то тот скрипт открывали? И смотрели КАКИЕ строки я удалил?

Sp01LeR
09-10-2009, 00:06
Не открывал и не смотрел - мне и так все понятно.
Только не могу понять, почему ошибка с StringRegExpReplace - возможно что там одна из букв "a", "c", "x", "p" или "e" набраны в русской раскладке...

Creat0R
09-10-2009, 00:20
Shpionus, Судя по всему у вас устаревшая версия AutoIt, обновите до 3.3.0.0.

Удалил первые две строки из файла скрипта:
#include <GUIMenu.au3>
#include <WindowsConstants.au3>
Теперь начало писать следующее »
Этого не должно быть, ошибка с другой функцией (_GUICtrMenu...).

не могу понять, почему ошибка с StringRegExpReplace - возможно что там одна из букв "a", "c", "x", "p" или "e" набраны в русской раскладке »
Нет, ошибка связана с неопознанной функцией.

Shpionus
09-10-2009, 01:11
Да действительно была старая версия :)
Обновил до 3.3.0.0
Те две строки всёравно приходится удалять.
Без них картина такая:
http://i008.radikal.ru/0910/53/9e8a8555736e.jpg

Creat0R
09-10-2009, 01:13
не могу понять, почему ошибка с StringRegExpReplace - возможно что там одна из букв "a", "c", "x", "p" или "e" набраны в русской раскладке »
Нет, ошибка связана с неопознанной функцией.

Те две строки всёравно приходится удалять.
Без них картина такая »
Так если вы их удалите, как срипт будет знать о существовании функции _GUICtrlMenu...? Там же логика подсказывает (см. имя файла), что эти файлы содержат нужные скрипту функции.

Shpionus
09-10-2009, 03:32
Так вот оно что! Мне надо было положить рядом с файлами
FPinger_5_0.exe
FPinger_5_0.au3
FPinger_5_0.bat
AutoIt3.exe

Ещё все файлы из папки C:\Program Files\AutoIt3\Include !
Вот после этого всё заработало и с теми первыми строками :)

Дело всё в том что я несколько раз брал скрипты написаные пользователем "Sanja Alone" и они требовали рядом с собой кроме дистрибутива программы которую надо ставить, только AutoIt3.exe ! И вот по этому примеру я и пытался испытать ваш скрипт, а он как оказалось использует кучу родных дополнений...

Creat0R
09-10-2009, 04:01
Мне надо было положить рядом с файлами »
Да нет же, нужно было просто скомпилировать скрипт, и всё само поставилось бы как есть.
Я полагаю это дело проверяется на системе без AutoIt? ну или он установлен некорректно.




© OSzone.net 2001-2012