Автоматический старт QUIK - это просто

Страницы: 1
RSS
Автоматический старт QUIK - это просто
 
Добрый день,
Если Вам надоело каждый раз при старте квик вручную вводить пароль
и код со смартфона , то расскажу, как делать  это автоматически.
------------------------
Самое простое - это ввод пароля.
для этого использую вот такой простой скрипт на AutoIt.
Код
; Скрипт автоматического ввода пароля для QUIK
; автор nikolz
; --- Настройки ---
$sQuikPath = "C:\QUIK\info.exe"
$sQuikWorkingDir = "C:\QUIK"  ; Рабочая папка (обычно там же, где info.exe)
$sPasswordFile = @ScriptDir & "\password.txt"
; --- Чтение пароля из файла ---
Local $sPassword = FileReadLine($sPasswordFile)
If @error Then
    MsgBox(16, "Ошибка", "Не удалось прочитать файл пароля: " & $sPasswordFile) 
    Exit
EndIf

; --- Запуск QUIK с правильной рабочей папкой и с ключом -clear ---
Run('"' & $sQuikPath & '" -clear', $sQuikWorkingDir)

If @error Then
    MsgBox(16, "Ошибка", "Не удалось запустить QUIK по пути: " & $sQuikPath)
    Exit
EndIf

; --- Ожидание первого окна (ввод пароля) ---
Local $hFirstWindow = WinWait("[CLASS:#32770; TITLE:Идентификация пользователя]", "", 1000)
If Not $hFirstWindow Then
    MsgBox(16, "Ошибка", "Окно ввода пароля не появилось в течение 1000 секунд.")
    Exit
EndIf

; Активируем окно
WinActivate($hFirstWindow)
Sleep(500)

; --- Ввод пароля ---
ControlSend($hFirstWindow, "", "[CLASS:Edit; INSTANCE:2]", $sPassword)
Sleep(300)
ControlSend($hFirstWindow, "", "", "{ENTER}")
Exit
Для его работы надо установить AutoIt
и создать файл "password.txt" с паролем в каталоге скрипта .
------------------------
Могу выложить выложить exe файл, который не требует установки AutoIt, если надо.  
Но решил, что скрипт нагляднее.
-------------------------
Продолжение следует...
 
Автоматическая двухфакторная аутентификация.
--------------------------
Привожу скрипт , который вводит пароль и код из файлов.
Код
; Скрипт автоматического ввода пароля и кода для QUIK
; автор nikolz
; Версия: 3.2 (рабочий поиск окон + правильный запуск)
; --- Настройки ---
$sQuikPath = "C:\QUIK6\info.exe"
$sQuikWorkingDir = "C:\QUIK6"  ; Рабочая папка (обычно там же, где info.exe)
$sPasswordFile = @ScriptDir & "\password.txt"
$sCodeFile = @ScriptDir & "\code.txt"
; --- Чтение пароля из файла ---
Local $sPassword = FileReadLine($sPasswordFile)
If @error Then
    MsgBox(16, "Ошибка", "Не удалось прочитать файл пароля: " & $sPasswordFile)
    Exit
EndIf
; --- Чтение кода из файла ---
Local $sCode = FileReadLine($sCodeFile)
If @error Then
    MsgBox(16, "Ошибка", "Не удалось прочитать файл с кодом: " & $sCodeFile)
    Exit
EndIf
; --- Запуск QUIK с ключом -clear ---
Run('"' & $sQuikPath & '" -clear', $sQuikWorkingDir)
If @error Then
    MsgBox(16, "Ошибка", "Не удалось запустить QUIK по пути: " & $sQuikPath)
    Exit
EndIf
; --- Ожидание первого окна (ввод пароля) ---
; ИСПОЛЬЗУЕМ ТОЧНО ТАКОЙ ЖЕ ПОИСК, КАК В РАБОЧЕМ СКРИПТЕ
Local $hFirstWindow = WinWait("[CLASS:#32770; TITLE:Идентификация пользователя]", "", 1000)
If Not $hFirstWindow Then
    MsgBox(16, "Ошибка", "Окно ввода пароля не появилось в течение 30 секунд.")
    Exit
EndIf
; Активируем окно
WinActivate($hFirstWindow)
Sleep(500)
; --- Ввод пароля ---
; ИСПОЛЬЗУЕМ ТОТ ЖЕ INSTANCE:2, КОТОРЫЙ РАБОТАЛ
ControlSend($hFirstWindow, "", "[CLASS:Edit; INSTANCE:2]", $sPassword)
Sleep(300)
ControlSend($hFirstWindow, "", "", "{ENTER}")
; --- Ожидание второго окна (ввод кода) ---
Local $hSecondWindow = WinWait("[CLASS:#32770; TITLE:Двухфакторная аутентификация]", "", 30)
If Not $hSecondWindow Then
    MsgBox(16, "Ошибка", "Окно ввода кода не появилось в течение 30 секунд.")
    Exit
EndIf
WinActivate($hSecondWindow)
Sleep(500)
; --- Ввод кода ---
ControlSend($hSecondWindow, "", "[CLASS:Edit; INSTANCE:1]", $sCode)
Sleep(300)
ControlSend($hSecondWindow, "", "", "{ENTER}")
Exit
Для дальнейшей автоматизации необходимо подключить к ПК GSM модем, либо передать в файл код, полученный на смартфоне.
---------------------
Для этой задачи собрал GSM модуль из трех деталей:
адаптер USB-UART, модуль SIM800L и корпус 50мм x 25мм x 11мм.
В режиме ожидания модуль потребляет  всего 1 мА.
-------------------
Приложение для работы с модулем написал на Lua.
Страницы: 1
Читают тему
Наверх