Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Хранение серийного номера во внешнем файле. (http://forum.oszone.net/showthread.php?t=233895)

wolkow70 02-05-2012 13:22 1909157

Хранение серийного номера во внешнем файле.
 
Товарищи, подскажите реализуема ли средствами AutoIt (только начинаю разбираться) следующая задача.

Сделал модуль автоматического ввода серийного номера для ACDSee Pro.

Код:

$sTitleRus = 'Добро пожаловать - ACDSee Pro';заголовок окна ввода ключа русский.
$sTitle1Rus = 'Регистрация - ACDSee Pro';заголовок окна ввода ключа русский.
$sTitle1EnRus = 'ACDSee Pro';заголовок окна с текстом "Для завершения регистрации

If _Singleton(@ScriptName, 1) = 0 Then
Exit;запрещение запуска второй копии программы
EndIf

Run(@ScriptDir & '\ACDSeePro5.exe');запускаем ACDSeePro5.exe из той же папки, где лежит скрипт
BlockInput(1);блокируем клавиатуру
WinWait($sTitleRus);ждем окно ввода пароля.
If Not WinActive($sTitleRus) Then WinActivate($sTitleRus)
WinWaitActive($sTitleRus);ждем его активации.
ControlCommand($sTitleRus, '', '[CLASS:Edit; INSTANCE:1]', "EditPaste", 'XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX')
ControlClick($sTitleRus, '', '[CLASS:Button; INSTANCE:3]')
WinWait($sTitle1Rus);ждем окно регистрации программы.
If Not WinActive($sTitle1Rus) Then WinActivate($sTitle1Rus)
ControlClick($sTitle1Rus, '', '[CLASS:SysLink; INSTANCE:2]');нажимаем на ссылку "Зарегистрироваться позже"
WinWait($sTitle1EnRus);ждем окно с текстом "Для завершения регистрации необходим перезапуск программы..."
If Not WinActive($sTitle1EnRus) Then WinActivate($sTitle1EnRus)
ControlClick($sTitle1EnRus, '', '[CLASS:Button; INSTANCE:1]') ;нажимаем на кнопку ДА, и программа сама перезапускается.
BlockInput(0);снимаем блокировку клавиатуры.

Теперь хочу сделать, что бы можно было в одной папке с exe-файлом AutoIt располагать текстовый файл (или ini) в котором также можно было хранить серийный номер для ввода.
То есть , если понадобиться сменить серийный номер, чтобы не перекомпилировать всю сборку.

Логика может быть такой, если внешний текстовый файл создан, то номер считывается из него, иначе из самого скрипта.
Или хотя бы вариант только с внешним файлом.

Creat0R 02-05-2012 13:32 1909172

Код:

$sTitleRus = 'Добро пожаловать - ACDSee Pro';заголовок окна ввода ключа русский.
$sTitle1Rus = 'Регистрация - ACDSee Pro';заголовок окна ввода ключа русский.
$sTitle1EnRus = 'ACDSee Pro';заголовок окна с текстом "Для завершения регистрации

$sSerial = IniRead(@ScriptDir & '\Serial.ini', 'Data', 'Key', 'XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX')

If _Singleton(@ScriptName, 1) = 0 Then
    Exit;запрещение запуска второй копии программы
EndIf

Run(@ScriptDir & '\ACDSeePro5.exe');запускаем ACDSeePro5.exe из той же папки, где лежит скрипт
BlockInput(1);блокируем клавиатуру
WinWait($sTitleRus);ждем окно ввода пароля.
If Not WinActive($sTitleRus) Then WinActivate($sTitleRus)
WinWaitActive($sTitleRus);ждем его активации.
ControlCommand($sTitleRus, '', '[CLASS:Edit; INSTANCE:1]', "EditPaste", $sSerial)
ControlClick($sTitleRus, '', '[CLASS:Button; INSTANCE:3]')
WinWait($sTitle1Rus);ждем окно регистрации программы.
If Not WinActive($sTitle1Rus) Then WinActivate($sTitle1Rus)
ControlClick($sTitle1Rus, '', '[CLASS:SysLink; INSTANCE:2]');нажимаем на ссылку "Зарегистрироваться позже"
WinWait($sTitle1EnRus);ждем окно с текстом "Для завершения регистрации необходим перезапуск программы..."
If Not WinActive($sTitle1EnRus) Then WinActivate($sTitle1EnRus)
ControlClick($sTitle1EnRus, '', '[CLASS:Button; INSTANCE:1]') ;нажимаем на кнопку ДА, и программа сама перезапускается.
BlockInput(0);снимаем блокировку клавиатуры.

Содержание Serial.ini:
Код:

[Data]
Key=XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX


wolkow70 02-05-2012 15:03 1909209

Creat0R,
Спасибо, работает.


Время: 15:26.

Время: 15:26.
© OSzone.net 2001-