Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Разработка => Topic started by: Mike33 on 27 02 2021, 01:33:08

Title: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: Mike33 on 27 02 2021, 01:33:08
subj
Title: Re: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: dartraiden on 27 02 2021, 12:20:26
Что понимается под окном плагина History++?

Окно истории какого-то контакта? Окно переписки с каким-то контактом, где журналом H++? Это таки две разные вещи...

Может быть, ваша проблема решается плагином Sessions.
Title: Re: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: Mike33 on 27 02 2021, 14:32:50
Нужно открыть окно поиска во всей истории.
То, которое открывается из главного меню иконки в трее.
Например, знаю, что изменить состояние подключения или выйти из миранды можно послав главному окну сообщение WM_COMMAND с параметром ID_STATUS_ONLINE или ID_STATUS_OFFLINE.
А здесь непонятно что делать. Может быть есть какой-нибудь вариант через файл autoexec_*.ini или через параметры командной строки?
Title: Re: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: dartraiden on 27 02 2021, 14:57:26
autoexec_*.ini это импорт настроек в базу, он совсем о другом.

Actman или MirLua (и писать скрипт на Lua)
В актмане можно дернуть сервис History++/ShowGlobalSearch (MS_HPP_SHOWGLOBALSEARCH)

Я сделал так, оно работает, но при старте актман выплёвывает кучу ошибок, а единственный человек, способный отлаживать код на Pascal, не появлялся уже несколько лет, так что, вероятно, вам придётся осваивать язык Lua и пытаться воплотить это на MirLua (а если MirLua чего-то не умеет, то ждать, пока кто-нибудь это в нём реализует)
Title: Re: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: Mike33 on 27 02 2021, 15:05:14
Спасибо!
А возможно как-то найти это идентификатор (наподобие ID_STATUS_ONLINE), чтобы обойтись без дополнительных плагинов?
Или есть какой-нибудь мануал по написанию плагинов, чтобы понять что там к чему, чтобы найти его самостоятельно?
Title: Re: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: dartraiden on 27 02 2021, 15:07:03
В смысле? Плагин H++ предоставляет ряд сервисов, которые могут быть дёрнуты другими плагинами.
Дёргать их, посылая окну списка контактов (который вы называете главным окном) сообщения, невозможно.

Главного окна у Миранды, по сути, вообще нет, есть окно списка контактов, окно сообщений, каждое из которых реализуется своим плагином.
Title: Re: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: dartraiden on 27 02 2021, 15:13:27
Например, знаю, что изменить состояние подключения или выйти из миранды можно послав главному окну сообщение WM_COMMAND с параметром ID_STATUS_ONLINE или ID_STATUS_OFFLINE.
   ghazan,  Today
[18:12]   потому что это контрол окна
­
   ghazan,  Today
[18:13]   а вот сервис h++ - не контрол
Title: Re: Как запустить миранду, чтобы она сразу открыла окно плагина History++?
Post by: Mike33 on 02 03 2021, 02:10:40
Погонял в отладчике.
Нашел, что идентификаторы для динамических пунктов меню начинаются с константы #define FIRSTCUSTOMMENUITEMID   30000 и зависят от набора плагинов.
Но при неизменном наборе плагинов идентификаторы постоянны.
Пока выкрутился так.