QLua(Lua) - скрипт автоматической авторизации в QUIK

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 5, среднее: 5,00 из 5)
Загрузка...

Двухфакторная авторизация прошла успешноДля того, чтобы постоянно вручную не вводить логин/пароль в терминале QUIK, используйте данный скрипт, написанный на языке Lua, или QLua (Lua,  интерпретированный под QUIK).

В последних версиях терминала изменилось окно ввода логина и пароля, чтобы этот скрипт мог с ним работать нужно заменить три строки 35 - 37 следующими четырьмя строками:

local hServer = w32.FindWindowEx(hLoginWnd, 0, "", "")
local hLogin = w32.FindWindowEx(hLoginWnd, hServer, "", "")
local nPassw = w32.FindWindowEx(hLoginWnd, hLogin, "", "")
local nBtnOk = w32.FindWindowEx(hLoginWnd, nPassw, "", "")

Код скрипта:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- Автологин терминала QUIK
-- (c) http://quik2dde.ru/
-- Версия: 1.0
 
local w32 = require("w32")
 
-- логин и пароль для терминала
QUIK_LOGIN = "MyLogin"
QUIK_PASSW = "MyPassword"
 
 
function FindLoginWindow()
   hLoginWnd = w32.FindWindow("", "Идентификация пользователя")
   if hLoginWnd == 0 then
      hLoginWnd = w32.FindWindow("", "User identification")
   end
   return hLoginWnd
end
 
timeout = 1000  -- таймаут между попытками поиска окна логина
is_run = true
 
function OnStop()
   timeout = 1
   is_run = false
end
 
function main()
   while is_run do
      sleep(timeout)
 
      if isConnected() == 0 then	  
         local hLoginWnd = FindLoginWindow()
         if hLoginWnd ~= 0 then
            local hLogin = w32.FindWindowEx(hLoginWnd, 0, "", "")
            local nPassw = w32.FindWindowEx(hLoginWnd, hLogin, "", "")
            local nBtnOk = w32.FindWindowEx(hLoginWnd, nPassw, "", "")
 
            w32.SetWindowText(hLogin, QUIK_LOGIN)
            w32.SetWindowText(nPassw, QUIK_PASSW)
 
            w32.SetFocus(nBtnOk)
            w32.PostMessage(nBtnOk, w32.BM_CLICK, 0, 0)
 
            while not isConnected() do sleep(10); end;
         end
      end
   end
end

Скачать скрипт (не забудьте разархивировать перед помещением в папку).

Чтобы использовать данный скрипт, нужно в директорию, в которой установлен терминал QUIK, поместить библиотеку w32.dll, скачать которую можно по данной ссылке (не забудьте разархивировать перед помещением в папку).

Если Вы не знаете как запустить скрипт в торговом терминале QUIK, ознакомьтесь с данной статьей.

Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!

Скрипт взят здесь.

Добавить комментарий

QLua(Lua) - скрипт автоматической авторизации в QUIK: 60 комментариев

  1. Привет, когда мы выходим из квика в штатном режиме или жмем кнопку "Сохранить настройки в файл...", то все супер сохраняется, а вот если у нас свет отключили или комп завис в общем аварийный выход из квика, то конфигурация не сохраняется. Вопрос можно ли с помощью этой библиотеки что то сделать, а именно автосохранение например каждые 5 минут - т.е. скрипт работает и делает сохранение конфигурации на автомате?

      1. я понимаю что ты сказал - просто я же не знаю как эти блин "кнопки" "эмулятивные" ну ты меня понял - суть то в этом - а запрос есть такой - ЛЮДЯМ надо - да я сам иной раз парюсь восстанавливать что да как - посмотри пожалуйста и тема то нужная и просто всем отдать раздать и тебя я разрекламирую еще сильнее ну а я в сторонке постою (во я борзота)

    1. Здравствуйте! А Вы вот эти строки видели в статье?:
      "Чтобы использовать данный скрипт, нужно в директорию, в которой установлен терминал QUIK, поместить библиотеку w32.dll, скачать которую можно по данной ссылке (не забудьте разархивировать перед помещением в папку)."

      1. Проглядел... Спасибо большое! Еще такой вопрос: очень долго не мог запустить код, в котором используются сервисные функции (getscriptPath, message и тд). Все в итоге запустилось только через добавление скрипта в QUIK. Через программу lExecutor и через командную строку запускать не удавалось, писал: attempt to call a global 'getScriptPath' (a nil value). Не подскажете, как можно запускать данные скрипты не через QUIK? Спасибо.

        1. Всегда пожалуйста.Язык QLua специально для QUIK разрабатывался, это надстройка над Lua, без квика скрипты написанные на QLua нет никакого смысла запускать, если Вам нужны обычные скрипты Lua, то установите LuaForWindows и пишите их на чистом Lua.