View previous topic :: View next topic |
Author |
Message |
D1P

Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Sun Nov 05, 2006 23:27 Post subject: |
|
|
Плаг скомпилился, но при попытке открыть файл ругается, на отсутствие xsl-файла. Почитал документацию, понял, приблизительно, что это такое... но не нашёл файл ни в исходниках, ни в дистрибе плагина (может плохо искал...). Плаг раньше ни разу не ставил, так что могу чего-то недопонимать; собсно вопрос - где взять файл. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
D1P

Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Mon Nov 06, 2006 00:24 Post subject: |
|
|
http://super.wincmd.ru/files/wlx_oooviewer_hksupport.rar
Всё работает, но замечен косяк: если с плагина переключиться на другое окно, потом обратно - работать перестаёт. Почему - хз, может какие-то внутренние заморочки листера. Думаю, это легко победить, если потратить немного времени.
В коде есть комментарии там, где я посчитал это необходимым; весь код, который трогать и, в принципе даже смотреть, не надо, вынесен в отдельный юнит hkproc.pas. Для удобства также переменная fmMain в юните UFormMain сделана глобальной (если критично, можно исправить, но тогда потребуется использовать другой способ вызова процедуры, например через сообщения).
В общем, наводку чего, как и куда я дал, думаю дальше разберёшься.
Да, если используешь Delphi 7 или выше, можно раскомментировать в юните hkproc в функциях VirtualKeyCodeToString/StringToVirtualKeyCode условия, использующие константы VK_ - в D6, который у меня сейчас стоит, этих констант не прописано, дописывать самому было лень, я их просто заремил. Но это не критично. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
(Separately) Posted: Mon Nov 06, 2006 00:53 Post subject: |
|
|
Хм, я не понял. Ты же хотел сделать -глобальный- хук. А на локальный как раз жаловался, что после переключения туда-сюда все работать перестает. А тут как раз локальный хук и такой случай....
Quote: | но замечен косяк: если с плагина переключиться на другое окно, потом обратно - работать перестаёт. Почему - хз, может какие-то внутренние заморочки листера. Думаю, это легко победить, если потратить немного времени. |
|
|
Back to top |
|
 |
D1P

Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Mon Nov 06, 2006 02:21 Post subject: |
|
|
Если на пальцах: локальный хук от глобального отличается тем, что первый работает внутри адресного пространства одного процесса (т.е. код в exe-файле), а второй работает внутри общего для всех процессов адресного пространства (код в динамической библиотеке). Если wlx-плагин не динамическая библиотека - бросьте в меня камнем .
По идее должны были перехватываться нажатия клавиш во всех окнах, но почему-то что-то не работает. Когда я ставил локальный хук (там и код немного другой), он гючил иначе:
Quote: | Хук ставится согласно всем возможным мануалам, работает - но при переключении на любое окно, кроме моей программы тут же убивает его процесс. |
т.е. стоило мне, скажем, переключиться на Рабочий стол, нажать кнопку - и эксплорер.exe тут же вырубался без всякого предупреждения
Почему не работает - хз; как можно убедиться, в исходном приложении почти тот же самый код работает как надо. Отсюда вывод - причиной что-то связанное с работой листера. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|