Владимир
Владимир личный блог
17 октября 2016, 20:08

Автоматическая авторизация в Quik

Еще один способ авторизации в Quik без использования exe-файлов
Просто сохраните в текстовый файл, например, autologin.lua и выберите его в квике.

--http://quik2dde.ru
local w32 = require("w32")

-- логин и пароль для терминала
QUIK_LOGIN = "login"
QUIK_PASSW = "parol"


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(1000); end;

      end
    end

  end
end
18 Комментариев
  • Олег Коробкин
    17 октября 2016, 20:59
    Вы что творите?
    Сперва школьники из o-s-a, потом тут.
    Нет, чтобы ссылку привести, мол, лебята, все уже написано давно, в далеком 2013 годе:
    quik2dde.ru/viewtopic.php?id=80
    Когда эту ссылку приводил вчера в топике Сергей < o-s-a.net >  (sergey_gt),  он удалил мой ответ, засранец ;)
    Завтра напишу свой пост. Озаглавлю:
    «Автоматическая авторизация в Quik»
    • Евгений
      17 октября 2016, 21:21
      Олег Коробкин, ваш «автор» аналогично скоммуниздил решение. Правды нет нигде. :-)
      • Олег Коробкин
        17 октября 2016, 21:40
        Евгений, какие ваши доказательства?
        • Евгений
          17 октября 2016, 22:44
          Олег Коробкин, Квик трогал лет 8 назад, может больше. Уже тогда было что-то подобное.
  • Олег Коробкин
    17 октября 2016, 21:07
    Я этого не говорил.
    Но проявите уважение к творцу этого кода, хоть и анонимному.
  • Ensy
    17 октября 2016, 21:31
    Автор, а этот скрипт с любой версией Квика должен работать? 
    Что-то я попробовал у себя такое проделать (сохранил код в текстовый файл с расширением .lua и добавил его в Квике в lua-скрипты). Выдает ошибку:

    C:\Users\User\Desktop\autologin.lua:1: module 'w32' not found:
    no field package.preload['w32']
    no file '.\w32.lua'
    no file 'C:\Program Files (x86)\Info\lua\w32.lua'
    no file 'C:\Program Files (x86)\Info\lua\w32\init.lua'
    no file 'C:\Program Files (x86)\Info\w32.lua'
    no file 'C:\Program Files (x86)\Info\w32\init.lua'
    no file 'C:\Program Files (x86)\Info\Include\w32.dll'
    no file 'C:\Program Files (x86)\Info\Include\w32.lua'

    • Олег Коробкин
      17 октября 2016, 21:39
      Excogit8er, 

      Если из скрипта робота понадобилось вызвать какие-либо функции WinAPI — проще всего взять готовую библиотеку-обертку.
      Например, посмотрим на библиотеку w32 для Lua.

      Чтобы начать ее использовать достаточно положить файл w32.dll в каталог с QUIK (т.е. там, где info.exe). Если у вас установлен пакет LuaForWindows, то эта библиотека есть в нем.

      Важно: если вы хотите использовать функции, отмеченные здесь как «новые» — то необходимо взять библиотеку с этого сайта, т.к. они есть только в ней!

      • Ensy
        17 октября 2016, 22:18
        Олег Коробкин, Понятно, спасибо! Добавил dll'ку в каталог с квиком, все сразу заработало. =)
        Хотя с точки зрения безопасности — это, конечно, «не айс»: хранить пароли в текстовом файле в открытом виде. 
        • Troll
          17 октября 2016, 23:42
          Excogit8er, ага, ато ZOG обнулят твои мильйоны:)
          А тема, полезная, спасибо автор. Попробую завтра.
          Плюсонул бы да сил нет. Плюсоните профиль плизз.

          • XXM
            18 октября 2016, 10:24
            Troll, получи фашист гранату заслуженные плюсы!
  • XXM
    18 октября 2016, 10:19
    Это не реклама, ежели че, просто ссылка ;)
    smart-lab.ru/blog/260931.php


    Программа позволяет настроить ввод компьютера в сон с последующим выводом из сна с запуском программы QUIK.В качестве бонуса — ввод логина и пароля в торговую систему.
    Можно просто — безо всякого сна настроить на запуск нескольких QUIK-ов.
    И еще: логин и пароль хранятся в зашифрованном виде:

    <?xml version="1.0"?>
    <QuikLoginPass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <qpath>D:\QUIK_OpenBroker</qpath>
      <login>Jg5SzaFaNlHtuPJp0mJXtw==</login>
      <pass>h6280j+RRiT+VndCe5eeNA==</pass>
      <waitfor>5</waitfor>
    </QuikLoginPass>
    
  • Олеся Ветер
    18 октября 2016, 19:00
    Спасибо!
    Скрипт немного переделала под себя, теперь у меня при запуске КВИКа автоматом вводится только имя пользователя) 
    давно думала, что много времени трачу на ввод имени пользователя, а тут эта статья)
    а вот пароль пока не готова так легкомысленно использовать)))
    • waldhaber
      18 октября 2016, 19:44
      Олеся Ветер, имя пользователя — можно вводить только первую букву;)
      • Олеся Ветер
        18 октября 2016, 20:43
        waldhaber, точно, проверила, работает!
        и где вы раньше были?)))
      • Фыва
        19 октября 2016, 19:38
        waldhaber, любую букву из подстроки

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн