QSearch plugin

Discuss and announce AkelPad plugins
Post Reply
  • Author
  • Message
DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

VladSh wrote:Хотел настроить, но #9BFF9B в параметре color_highlight почему-то не сохраняется...
Как следует из AkelFiles\Docs\QSearch-Rus.txt:
15) color_highlight = C0FFC000
Цвет фона для текста, который подсвечивается при установленной галочке
"Highlight all". Этот цвет задается в виде "RRGGBB00", где RR, GG и BB -
это шестнадцатиричные значения красного, зеленого и синего цветов (от 00
до FF).
цвет должен задаваться в виде 9BFF9B00.

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

DV wrote:цвет должен задаваться в виде 9BFF9B00.
Я просто не знаю, что это вообще за иероглифы, потому и спросил)))
Спасибо, работает! 8)

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

QSearch v.2.4
* DialogSwitcher работает с AkelPad 4.3.2+
- исправлено: проблема перерисовки окна ввода при режиме поиска не "на лету"
- исправлено: изменение галочки "Слово целиком" не устанавливало QSEARCH_FIRST
+ добавлено: новые значения для параметра 'highlight_state'

Знаете ли вы, что... у плагина QSearch есть
Дополнительные настройки (всплывающее меню панели QSearch или файл
"AkelFiles\Plugs\QSearch.ini")
Цитата из "AkelFiles\Docs\QSearch-Rus.txt"

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Не знал куда запостить, такое наложение плагов...
В AkelPad'е "Поиск и замена" установлена на 2-х комбинациях клавиш: Ctlr+R (в основном все используют эту) и Ctrl+H.
Так вот я в Hotkeys-плагине назначил на Ctrl+H "Сброс подсветки".
Всё бы ничего, но при отображённом на экране QSearch-плагине нажатие Ctrl+H закрывает QSearch, потом открывает диалог поиска (хотя Hotkeys-плагин имеет наивысший приоритет...). Только при повторном нажатии Ctrl+H сбрасывается подсветка.
По идее при первом же нажатии окно QSearch не должно было закрываться, - должна была только сброситься подсветка, без вывода окна "Поиск и замена".

Updated: похоже запостил всё же туда)
Попробовал "Сброс подсветки" настроить на Alt+H (в Hotkeys-плагине), так вот при запущенном QSearch эта комбинация не работает. Похоже Hotkeys-плагин вообще не работает, когда QSearch запущен...
Естественно, комбинации клавиш QSearch должны быть самыми приоритетными, если он запущен, но и неперекрытые комбинации клавиш из Hotkeys-плагина по идее тоже должны работать.

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Плагин QSearch ничего не знает про Hotkeys. Сочетание Ctrl+H вычитывается из таблицы акселераторов ("быстрых клавиш") AkelPad.
VladSh wrote:Попробовал "Сброс подсветки" настроить на Alt+H (в Hotkeys-плагине), так вот при запущенном QSearch эта комбинация не работает.
Если фокус ввода в окне редактирования, то работает (только что проверил с командами Call и Insert), потому что оттуда ее обрабатывает Hotkeys. См. реализацию функции dlgswtchHookProc в файле DialogSwitcher.c - обрабатываются только те сочетания клавиш, которые в точности совпадают с сочетаниями для вызова диалогов Поиска/Замены/Перехода к строке.
Из панели QSearch конечно не работает, потому что нажатия клавиш в панели QSearch обрабатывает сам QSearch.

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Можно ли сочетания брать из Hotkeys?
Можно ли, чтобы работало, но не тыкать в окно редактирования?

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

VladSh wrote:Можно ли сочетания брать из Hotkeys?
Нет. DialogSwitcher использует свой метод для перехвата нажатий клавиш в ЛЮБОМ окне AkelPad. Только такой подход позволяет переключаться между диалогами - фактически, плагин реагирует на Ctrl+F или Ctrl+H, нажатые где угодно - хоть в диалоге плагинов, хоть в окне поиска, - а затем определяет, нужно ли делать переключение диалогов. С плагином Hotkeys этот механизм не пересекается, потому что Hotkeys использует похожий (но другой) подход для выполнения конкретной задачи - обработки клавиатурных сочетаний, которые не относятся к диалоговым окнам AkelPad. То есть оба плагина занимаются перехватом нажатия клавиш, но только сами плагины знают, какие именно клавиши они хотят перехватывать. Извне этого не узнать.
VladSh wrote:Можно ли, чтобы работало, но не тыкать в окно редактирования?
Панель QSearch обрабатывает нажатые клавиши точно таким же образом, как, к примеру, окна HexSel или Explorer - да впрочем, как и диалог поиска/замены. Риторический вопрос: работают ли сочетания клавиш Hotkeys в этих или других окнах?

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Ясно.
DV wrote:Риторический вопрос: работают ли сочетания клавиш Hotkeys в этих или других окнах?
Не-а, проверил - не работают.

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

QSearch v.2.5
+ новый параметр настройки: color_eof
+ новый параметр настройки: use_alt_hotkeys

Предупреждение: при английском языке меню AkelPad и параметре use_alt_hotkeys=1 быстрые клавиши панели QSearch пересекаются с меню AkelPad.

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

DV wrote:QSearch v.2.5
+ новый параметр настройки: use_alt_hotkeys
Красиво! Особенно Alt+H 8)

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Появилась v.2.6, не анонсированная в этой ветке..

Давно заметил, что при попытке замены QSearch.dll не могу это сделать, т.к. файл занят какими-то прогами :roll:
Способ воспроизведения:
1. Запускаю AkelPad (в автозагрузке только QSearch::DialogSwitcher).
2. Проверяю наличие обновлений AkelUpdater'ом - скачиваю пак, вручную извлекаю dll-и во временную папку.
3. Закрываю AkelPad.
4. С помощью TotalCommander'а (да или Эксплорером) открываю папки (временную и ту, где лежат плагины под AkelFiles), копирую или перемещаю dll-и.
Все dll-и нормально заменяются, только QSearch.dll всегда занят какими-то прогами - всегда набор прог разный, но он всегда из списка загруженных в системе. Например в этот раз это были:

Code: Select all

- soundman.exe
volumouse.exe
FileBX.exe
Естественно эти проги не могут занимать QSearch.dll, т.к. они даже не знают о его существовании. Но интересный факт: когда запускаю Unlocker и разблокирую указанные проги, то файл при копировании заменяется!

P.S. Только что, ради интереса, запустил Unlocker при загруженном AkelPad, так вот он показал. что файл заблокирован почти всеми прогами, которые у меня сейчас запущены, а это:

Code: Select all

explorer.exe
equi.exe
dmaster.exe
ctfmon.exe
punto.exe
opera.exe
AkelPad.exe
Ну не бред ли?

P.S.-2: Вирусов на компе нет.

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Да, действительно.
Запустил Акел - посмотрел Process Explorer-ом - куча процессов модуль подтянули, а именно: все процессы запущеные от имени пользователя, кроме почему-то консольных, т.е. cmd.exe его дочерних которые эту консоль используют.
Но после выхода - все преспокойно поотпускали.

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Это, наверное, из-за SetWindowsHookEx и затем CallNextHookEx, которые используются в DialogSwitcher - в Windows же предусмотрены так называемые цепочки хуков (hook). Параметры, вроде, правильные передаются, так что, скорее всего, так и должно быть (другие программы тоже хотят "поучаствовать").

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

DV
Экономнее будет SetWindowsHookEx вызывать с GetCurrentThreadId().

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

DV wrote:Это, наверное, из-за SetWindowsHookEx и затем CallNextHookEx, которые используются в DialogSwitcher - в Windows же предусмотрены так называемые цепочки хуков (hook). Параметры, вроде, правильные передаются, так что, скорее всего, так и должно быть (другие программы тоже хотят "поучаствовать").
Не факт. почему тогда окна консоли не хукнулись, как не крути они окна тоже? И почему у некоторых этот хук снимается, а у других нет?
Post Reply