Войти

Показать полную графическую версию : [решено] Хранение серийного номера во внешнем файле.


wolkow70
02-05-2012, 13:22
Товарищи, подскажите реализуема ли средствами 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
$sTitleRus = 'Добро пожаловать - ACDSee Pro';заголовок окна ввода ключа русский.
$sTitle1Rus = 'Регистрация - ACDSee Pro';заголовок окна ввода ключа русский.
$sTitle1EnRus = 'ACDSee Pro';заголовок окна с текстом "Для завершения регистрации

$sSerial = IniRead (http://autoit-script.ru/autoit3_docs/functions/IniRead.htm)(@ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\Serial.ini', 'Data', 'Key', 'XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX')

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) _Singleton (http://autoit-script.ru/autoit3_docs/libfunctions/_singleton.htm)(@ScriptName (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptname), 1) = 0 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit);запрещение запуска второй копии программы
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

Run (http://autoit-script.ru/autoit3_docs/functions/Run.htm)(@ScriptDir (http://autoit-script.ru/autoit3_docs/macros.htm#@scriptdir) & '\ACDSeePro5.exe');запускаем ACDSeePro5.exe из той же папки, где лежит скрипт
BlockInput (http://autoit-script.ru/autoit3_docs/functions/BlockInput.htm)(1);блокируем клавиатуру
WinWait (http://autoit-script.ru/autoit3_docs/functions/WinWait.htm)($sTitleRus);ждем окно ввода пароля.
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) WinActive (http://autoit-script.ru/autoit3_docs/functions/WinActive.htm)($sTitleRus) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) WinActivate (http://autoit-script.ru/autoit3_docs/functions/WinActivate.htm)($sTitleRus)
WinWaitActive (http://autoit-script.ru/autoit3_docs/functions/WinWaitActive.htm)($sTitleRus);ждем его активации.
ControlCommand (http://autoit-script.ru/autoit3_docs/functions/ControlCommand.htm)($sTitleRus, '', '[CLASS:Edit; INSTANCE:1]', "EditPaste", $sSerial)
ControlClick (http://autoit-script.ru/autoit3_docs/functions/ControlClick.htm)($sTitleRus, '', '[CLASS:Button; INSTANCE:3]')
WinWait (http://autoit-script.ru/autoit3_docs/functions/WinWait.htm)($sTitle1Rus);ждем окно регистрации программы.
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) WinActive (http://autoit-script.ru/autoit3_docs/functions/WinActive.htm)($sTitle1Rus) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) WinActivate (http://autoit-script.ru/autoit3_docs/functions/WinActivate.htm)($sTitle1Rus)
ControlClick (http://autoit-script.ru/autoit3_docs/functions/ControlClick.htm)($sTitle1Rus, '', '[CLASS:SysLink; INSTANCE:2]');нажимаем на ссылку "Зарегистрироваться позже"
WinWait (http://autoit-script.ru/autoit3_docs/functions/WinWait.htm)($sTitle1EnRus);ждем окно с текстом "Для завершения регистрации необходим перезапуск программы..."
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) WinActive (http://autoit-script.ru/autoit3_docs/functions/WinActive.htm)($sTitle1EnRus) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) WinActivate (http://autoit-script.ru/autoit3_docs/functions/WinActivate.htm)($sTitle1EnRus)
ControlClick (http://autoit-script.ru/autoit3_docs/functions/ControlClick.htm)($sTitle1EnRus, '', '[CLASS:Button; INSTANCE:1]') ;нажимаем на кнопку ДА, и программа сама перезапускается.
BlockInput (http://autoit-script.ru/autoit3_docs/functions/BlockInput.htm)(0);снимаем блокировку клавиатуры.

Содержание Serial.ini:
[Data]
Key=XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX

wolkow70
02-05-2012, 15:03
Creat0R,
Спасибо, работает.




© OSzone.net 2001-2012