Блог им. 315

Автоматическая авторизация в 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
    ★34
    18 комментариев
    Вы что творите?
    Сперва школьники из o-s-a, потом тут.
    Нет, чтобы ссылку привести, мол, лебята, все уже написано давно, в далеком 2013 годе:
    quik2dde.ru/viewtopic.php?id=80
    Когда эту ссылку приводил вчера в топике Сергей < o-s-a.net >  (sergey_gt),  он удалил мой ответ, засранец ;)
    Завтра напишу свой пост. Озаглавлю:
    «Автоматическая авторизация в Quik»
    avatar
    Олег Коробкин, я себя автором скрипта не считаю!
    avatar
    Олег Коробкин, ваш «автор» аналогично скоммуниздил решение. Правды нет нигде. :-)
    avatar
    Евгений, какие ваши доказательства?
    avatar
    Олег Коробкин, Квик трогал лет 8 назад, может больше. Уже тогда было что-то подобное.
    avatar
    Я этого не говорил.
    Но проявите уважение к творцу этого кода, хоть и анонимному.
    avatar
    Олег Коробкин, С уважением.
    avatar
    Владимир, смотрится лучше ;)
    avatar
    Автор, а этот скрипт с любой версией Квика должен работать? 
    Что-то я попробовал у себя такое проделать (сохранил код в текстовый файл с расширением .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'

    avatar
    Excogit8er, 

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

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

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

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

    avatar
    Troll, получи фашист гранату заслуженные плюсы!
    avatar
    Это не реклама, ежели че, просто ссылка ;)
    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>
    
    avatar
    Спасибо!
    Скрипт немного переделала под себя, теперь у меня при запуске КВИКа автоматом вводится только имя пользователя) 
    давно думала, что много времени трачу на ввод имени пользователя, а тут эта статья)
    а вот пароль пока не готова так легкомысленно использовать)))
    avatar
    Олеся Ветер, имя пользователя — можно вводить только первую букву;)
    avatar
    waldhaber, точно, проверила, работает!
    и где вы раньше были?)))
    avatar
    waldhaber, любую букву из подстроки
    avatar

    теги блога Владимир

    ....все тэги



    UPDONW
    Новый дизайн