Полезности

Здесь буду выкладывать решения разных небольших задач:

Закрыть терминал из скрипта

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

Полезности: 31 комментарий

  1. Дмитрий, здравствуйте.
    Может дадите совет?
    Где почитать, как снять информацию с листа квика (Имя класса: MultiList). Именно этот класс составил проблему.
    Вариант написания робота (Lua), который собирает информацию и взаимодействует с моей программой, не подходит.
    Программу пишу на С++.
    Спасибо.

            1. Вот, что он написал:
              "Могу только посоветовать тому человеку использование функций WinAPI
              FindWindowEx
              далее, после того, как HWND окна MultiList будет найден - уже можно будет установить перехватчик сообщений посылаемых окну на свою оконную функцию где и будет анализ сообщений. После того, как действия будут выполнены - надо передать сообщение штатной функции окна.
              Сам хук - можно установить функцией винапи SetWindowsHookEx

              либо через
              SetWindowLongPtr
              с параметром
              GWLP_WNDPROC
              при этом - сохранив указатель на старую оконную функцию"

              1. Спасибо.
                MultiList нахожу без всяких сложностей.
                Буду пробовать вылавливать сообщения листу, чтобы узнать как с ним общаться.
                Покопал в интернете, MultiList - какая-то тайна за семью печатями, маловато информации.
                Дмитрий, Спасибо Огромное.

                1. Продолжение: "нет смысла искать MultiList в интернете.
                  Это внутренний QUIK-овский оконный класс. Как получать и изменять сообщения окна (в том числе и класса MultiList) - указано по приведённым ссылкам.
                  Чтобы отделить один мультилист от другого и выделить нужный HWND - можно смотреть (проверять в цикле с FindWindowEx) на заголовок окна (ф-ция WinAPI GetWindowText)"

                    1. Вот, что ответил на это специалист 🙂 : "большего сказать не могу. пусть сам дальше думает. простого метода нет."

      1. Это Вам. Спасибо.
        Под последним вашим постом почему-то отсутствует кнопка "Ответить".
        Поэтому сказал "Спасибо" немного в другом месте. 8-))

  2. Дмитрий, здравствуйте.
    Может ли скрипт, по достижении ценой определённого уровня, приостановить работу другого скрипта,
    потом при каких-то условиях, опять запустить его в работу?
    По сути нужен скрипт управляющий работой другого скрипта.
    Возможно это?
    Прошу совета.
    Спасибо.

    1. Здравствуйте. Вопрос не мне, но...
      В рамках одного терминала, используя StaticVar https://quik2dde.ru/viewtopic.php?id=61.
      Скрипт, который должен приостановить свою работу, может опрашивать соответствующее поле на предмет "работать"/"покурить" и уходить в цикл, который будет ждать команды "работать".

      1. Здравствуйте. Спасибо большое за информацию.
        Но есть необходимость контролировать работу стороннего скрипта, который
        не умеет останавливаться и по различным условиям запускаться в работу,
        а изменить его не имею возможности, так как скрипт купленный.
        Хочу написать скрипт, который бы управлял этим купленным скриптом.

        1. Здравствуйте.
          В таком случае все просто, вам нужно написать скрипт, который будет передавать в поле StaticVar команды, затем отдать этот скрипт вместе с купленным разработчику купленного скрипта и за отдельную плату он вам подключит StaticVar, объявит нужное пространство имен, сделает опрос ячейки памяти и ожидающий цикл.
          Ну или переписать логику купленного скрипта, что несколько сложнее, но открывает больше возможностей для вас лично))

          1. Уважаемый kalikazandr, Спасибо.
            Переписывать купленный скрипт, не вариант.
            Изменять купленный скрипт, не вариант.
            Обращаться к разработчику купленного скрипта, не вариант.
            Нужно написать скрипт, который будет управлять приостановкой(при условиях) и запуском в работу(при условиях) стороннего (купленного) скрипта.
            Прошу совета.
            Спасибо.

            1. Чтож, в таком случае делаете скрипт, который будет сильно вас извещать при наступлении соответствующего события и выключать/включать купленный скрипт руками, как самый легкий путь. Либо попробовать используя w32.dll (с выше указанного форума) найти окно "доступные скрипты" и кнопки управления в этом окне. Задача не тривиальная, на мой взгляд проще переписать платного бота или получить исходники.

              1. Нужно написать скрипт, который будет управлять приостановкой(при условиях) и запуском в работу(при условиях) стороннего (купленного) скрипта.
                Спасибо.

                  1. Тут напишу.
                    Нужна работа купленного робота (написан на QLUA) в заданном мною диапазоне цен (часть стратегии).
                    При выходе цены из диапазона купленный скрипт (робот) приостанавливаем, при заходе цены в диапазон запускаем.
                    Желательно, чтобы управляющий купленным роботом скрипт был написан на QLUA.
                    Спасибо.

                    1. Здравствуйте! Через WinAPI, наверное, можно это реализовать, т.е. программно нажимать кнопки "Запустить" и "Остановить" скрипт, но нужно будет поковыряться, чтобы до них добраться. Пример использования WinAPI есть в скрипте автоматической авторизации: https://quikluacsharp.ru/quik-qlua/qlua-lua-skript-avtomaticheskoj-avtorizatsii/