Добрый день, Если Вам надоело каждый раз при старте квик вручную вводить пароль и код со смартфона , то расскажу, как делать это автоматически. ------------------------ Самое простое - это ввод пароля. для этого использую вот такой простой скрипт на 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, если надо. Но решил, что скрипт нагляднее. ------------------------- Продолжение следует...
Пользователь
Сообщений: Регистрация: 30.01.2015
18.03.2026 12:03:19
Автоматическая двухфакторная аутентификация. -------------------------- Привожу скрипт , который вводит пароль и код из файлов.
Код
; Скрипт автоматического ввода пароля и кода для 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.
Пользователь
Сообщений: Регистрация: 09.12.2025
26.07.2026 11:58:28
Спасибо за идею скрипта, творчески развил и адаптировал для варианта без модема (AutoIt, Chrome, Android).
Нам потребуется телефон на Android с использованием в качестве приложения по умолчанию для работы с SMS. Замечание для владельцев Samsung Galaxy ниже S25 - в более новых версиях в качестве "умолчательного" , для версий ниже - надо установить и переназначить.
Идем на компе в Chrome на , настраиваем связь с телефоном как там описано (вход в аккаунт Google и все такое). Если все сделано правильно, то должны увидеть на странице список своих чатов.
Устанавливаем - достаточно .
Выше - это обязательный перечень, остальные моменты можно настраивать под собственное удобство. Все приведенные ниже файлы создаем в любом отдельном каталоге.
Код
_login.au3: основной AutoIt-скрипт запуска
Код
; автозапуск QUIK с проходом двухфакторной авторизации
; проверено на Сбер 12.8.4.9
; читаем пароль из _quik.pwd рядом с .au3
$sPathPWD = @ScriptDir & "\_quik.pwd"
Local $sPWD = FileReadLine($sPathPWD)
If @error Then
MsgBox(16, "Ошибка", "Не удалось прочитать файл пароля: " & $sPathPWD)
Exit
EndIf
; читаем путь до каталога QUIK из _quik.pth рядом с .au3
$sPathPth = @ScriptDir & "\_quik.pth"
; рабочая папка QUIK
Local $sPathQUIK_WD = FileReadLine($sPathPth)
If @error Then
MsgBox(16, "Ошибка", "Не удалось прочитать файл пути: " & $sPathPth)
Exit
EndIf
; путь до самого QUIK (info.exe)
$sPathQUIK = $sPathQUIK_WD & "\info.exe"
; запускаем QUIK с ключом -clear
; для простоты предполагаем рабочей папкой ту, где находится сам info.exe
Run('"' & $sPathQUIK & '" -clear', $sPathQUIK_WD)
If @error Then
MsgBox(16, "Ошибка", "Не удалось запустить QUIK по пути: " & $sPathQUIK)
Exit
EndIf
AutoItSetOption("SendKeyDelay", 100)
; бесконечный цикл, в котором мы проходим оба окна, как только они появляются
; защита от "разлогина" в ходе торговой сессии - по умолчанию выключена
;While True
; просто ждем 30 сек
Sleep(30000)
; до 30 сек ждем диалог авторизации с логин-паролем
Local $hWndPWD = WinWait("[CLASS:#32770; TITLE:Вход в систему]", "", 30)
If $hWndPWD Then
; ставим фокус на диалог
WinActivate($hWndPWD)
Sleep(500)
; отправляем пароль во 2-й EditBox (1-й - логин уже сохранен по умолчанию)
ControlSend($hWndPWD, "", "[CLASS:Edit; INSTANCE:2]", $sPWD)
Sleep(300)
ControlSend($hWndPWD, "", "", "{ENTER}")
EndIf
; до 30 сек ждем диалог ввода PIN
; если так и не появился, то двухфакторка уже принята "с прошлого раза"
Local $hWndPIN = WinWait("[CLASS:#32770; TITLE:Двухфакторная аутентификация]", "", 30)
If $hWndPIN Then
; запускаем страницу Google SMS в новом окне Chrome
Run(@ComSpec & " /c start chrome --new-window https://messages.google.com/web/conversations")
; ждем появления окна с нужной вкладкой
Local $hWndChrome = WinWaitActive("[REGEXPCLASS:Chrome;TITLE:Веб-версия Google Сообщений]")
SendKeepActive($hWndChrome)
; вызываем консоль (DevTools)
Send("{F12}")
; ждем 10c, пока прогрузится список чатов
Sleep(10000)
; через консоль активируем первый чат (с большой вероятностью это нужный нам 900)
;;Send("$('NAV.conversation-list A').click(){ENTER}")
Send("$$('NAV.conversation-list A.list-item SPAN').find(span => span.innerText == '900').click(){ENTER}")
; ждем 10c, пока прогрузится список сообщений
Sleep(10000)
; берем текст последнего сообщения, вырезаем из него регуляркой PIN (5 цифр подряд) и копируем в буфер обмена
Send("copy($('DIV.content mws-message-wrapper[is-last=""true""]').innerText.match(/\d{{}5{}}/)[0]){ENTER}")
Sleep(1000)
WinClose($hWndChrome)
WinWaitClose($hWndChrome)
; получаем PIN из буфера обмена
$sPIN = ClipGet()
WinActivate($hWndPIN)
Sleep(500)
; отправляем PIN в первое поле ввода
ControlSend($hWndPIN, "", "[CLASS:Edit; INSTANCE:1]", $sPIN)
Sleep(300)
ControlSend($hWndPIN, "", "", "{ENTER}")
EndIf
;Wend
Exit
Код
_quik.pth: файл с путем до папки QUIK
Код
C:\QUIK_SBER
Код
_quik.pwd: файл с паролем
Код
12345678
Код
ai-login.bat: файл для запуска в планировщике задач
Код
cd /d "%~dp0"
C:\#AUTOIT\AutoIt3.exe _login.au3
Находим через "Пуск" "Планировщик задач", в нем "Создать простую задачу" - и назначаем ai-login.bat на запуск каждый день в 6:45 - перед аукционом открытия.
Код
_logout.au3: AutoIt-скрипт завершения торговой сессии
Код
; закрываем окно QUIK, если оно существовало
WinClose("[CLASS:InfoClass; REGEXPTITLE:QUIK]")
Exit
Код
ai-logout.bat: файл для запуска в планировщике задач
Код
cd /d "%~dp0"
C:\#AUTOIT\AutoIt3.exe _logout.au3
Аналогично назначаем ai-logout.bat на запуск каждый день в 23:55.