А можно из плагина опредить текущую MacroArea?

Место, где разработчики плагинов могут поделиться своим опытом.
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

А можно из плагина опредить текущую MacroArea?

Post by Roy »

Что-то ничего умнее чем, выполнить из плагина макрос вроде "%%MacroArea=MacroArea; msave("%MacroArea%")" а потом это значение из реестра считать, придумать не могу.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: А можно из плагина опредить текущую MacroArea?

Post by Maximus5 »

а параметр OpenFrom в OpenPlugin не устраивает?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: А можно из плагина опредить текущую MacroArea?

Post by Skirda »

Roy, ты тему раскрой, а то свое решение предложил, а для чего и почему - догадываться надо.
We are the Borg. You will be assimilated.
So Say We All!
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Re: А можно из плагина опредить текущую MacroArea?

Post by Roy »

Нет :)
Штука в том, что это не совсем плагин - OpenPlugin там нет.
Работает штука так:
экспортируем GetPluginInfo, возвращаем PF_PRELOAD - дабы нас не выгружали
экспортируем SetStartupInfo, получаем FARAPI, ставим хук на ReadConsoleInput
все остальное делаем в хуке
макросы запускать умеем - для этого и придуманы, но вот как текущую область определить...
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: А можно из плагина опредить текущую MacroArea?

Post by Skirda »

Roy wrote:но вот как текущую область определить...
зачем? (только не отвечай в стиле "нада", иначе на "нада" будет адекватный ответ :twisted: )
We are the Borg. You will be assimilated.
So Say We All!
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: А можно из плагина опредить текущую MacroArea?

Post by t-rex »

Roy
ACTL_GETSHORTWINDOWINFO
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Re: А можно из плагина опредить текущую MacroArea?

Post by Roy »

Чтобы выполнить соответствующий ей макрос ;)
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Re: А можно из плагина опредить текущую MacroArea?

Post by Roy »

t-rex wrote:Roy
ACTL_GETSHORTWINDOWINFO
Ага, уже что-то. Но областей несколько больше? ;)
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Re: А можно из плагина опредить текущую MacroArea?

Post by Roy »

В смысле, а что мешает ACTL_GETWINDOWINFO\ACTL_GETSHORTWINDOWINFO возвращать все области? Может его того - дописать? ;) На мантис?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: А можно из плагина опредить текущую MacroArea?

Post by Skirda »

ну... как бы есть MCMD_GETSTATE, пока он возвращает только состояние машины, но у меня есть мысль добавить инфы (какой клавишей вызывали макрос, опять же - макрообласть, может еще что...)
We are the Borg. You will be assimilated.
So Say We All!
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: А можно из плагина опредить текущую MacroArea?

Post by Max Rusov »

Roy wrote:В смысле, а что мешает ACTL_GETWINDOWINFO\ACTL_GETSHORTWINDOWINFO возвращать все области? Может его того - дописать? ;) На мантис?
Не стоит. Куча плагинов может поломаться.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: А можно из плагина опредить текущую MacroArea?

Post by NightRoman »

Max Rusov wrote:
Roy wrote:В смысле, а что мешает ACTL_GETWINDOWINFO\ACTL_GETSHORTWINDOWINFO возвращать все области? Может его того - дописать? ;) На мантис?
Не стоит. Куча плагинов может поломаться.
Да, у меня тоже есть опасения. И пример был не так давно, когда там что-то пошевелили - и ага.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: А можно из плагина опредить текущую MacroArea?

Post by Skirda »

это почему?
сейчас в качестве param вы юзаете NULL - ну и юзайте на здоровье.
в конечном итоге здесь будет ссылка на структуру.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: А можно из плагина опредить текущую MacroArea?

Post by NightRoman »

Skirda wrote:это почему?
сейчас в качестве param вы юзаете NULL - ну и юзайте на здоровье.
в конечном итоге здесь будет ссылка на структуру.
Ну может и ОК. Правда мне не нравится все равно, я уже критиковал подход с чрезмерной перегрузкой существующего АПИ. То есть функа будет еще что-то делать, что не нужно 99% плагинов, да? Лучше это тогда дополнительной командой реализовывать, а не валить в уже имеющуюся. Но хозяин - барин, само собой.
Roy
Posts: 51
Joined: Sat 02 Jul, 2005 00:08

Re: А можно из плагина опредить текущую MacroArea?

Post by Roy »

Протестировал ACTL_GETWINDOWINFO\ACTL_GETSHORTWINDOWINFO на предмет соответствия возвращаемого ею Type и MacroArea.
Выхлоп:

Code: Select all

//   Shell           WTYPE_PANELS
//   Viewer          WTYPE_VIEWER
//   Editor          WTYPE_EDITOR
//   Dialog          WTYPE_DIALOG
//   MainMenu        WTYPE_PANELS  !!!
//   Help            WTYPE_HELP

//   Menu            WTYPE_PANELS
//   UserMenu        WTYPE_PANELS
//   Search          WTYPE_PANELS
//   Info            WTYPE_PANELS
//   Disks           WTYPE_PANELS
//   QView           WTYPE_PANELS
//   Tree            WTYPE_PANELS
//   FindFolder      8             !!!
//   Other           зависит от предыдущего контекста
Т.е. имеем 2 бага:
- WTYPE_VMENU - не возвращается никогда, по крайней мере я не нашел ни одного такого Menu.
- для FindFolder возвращаем волшебное значение - 8! [здесь дикий смайлик на ваш выбор]
Post Reply

Return to “Разработка плагинов”