Как повлиять на отображение файла в Viewer-e

Место, где разработчики плагинов могут поделиться своим опытом.
rustyx
Posts: 6
Joined: Fri 02 Mar, 2012 13:36
Been thanked: 1 time

Как повлиять на отображение файла в Viewer-e

Post by rustyx »

Я думал о написании плагина который бы позволил мне делать базовые преобразования отображаемого файла, такие как +/-/xor заданной константы. Например, у меня есть файл замаскированный XOR C1. Возможно ли написать плагин который бы делал XOR C1 на лету, и отображал результат в Viewere?
Т.к. это 1-к-1 трансформация, я думал может можно через систему кодировок это сделать, но не уверен что даже это возможно.
Пож. посоветуйте, я совсем чайник в фаровском API..
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Re: Как повлиять на отображение файла в Viewer-e

Post by HaRT »

А почему Вы хотите изменять содержимое именно в просмотрщике?
Почему бы просто не вызывать прямо Ваш плагин из панелей, чтобы он как угодно расшифровал файл и уже после этого показал его в просмотрщике или даже редакторе (в этом случае с возможностью обратной зашифровки обновлённой версии)?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Как повлиять на отображение файла в Viewer-e

Post by John Doe »

rustyx wrote:Т.к. это 1-к-1 трансформация, я думал может можно через систему кодировок это сделать, но не уверен что даже это возможно.
Можно, почему нет, и апи никакого не нужно. Для этого проще использовать фар 1.75.
rustyx
Posts: 6
Joined: Fri 02 Mar, 2012 13:36
Been thanked: 1 time

Re: Как повлиять на отображение файла в Viewer-e

Post by rustyx »

John Doe wrote:Можно, почему нет, и апи никакого не нужно. Для этого проще использовать фар 1.75.
Как? И почему проще 1.75? Я бы хотел в 3.0.
rustyx
Posts: 6
Joined: Fri 02 Mar, 2012 13:36
Been thanked: 1 time

Re: Как повлиять на отображение файла в Viewer-e

Post by rustyx »

HaRT wrote:Почему бы просто не вызывать прямо Ваш плагин из панелей, чтобы он как угодно расшифровал файл и уже после этого показал его в просмотрщике или даже редакторе (в этом случае с возможностью обратной зашифровки обновлённой версии)?
Тоже вариант, спасибо, попробую.
User avatar
Tim Sobolev
Posts: 729
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 7 times

Re: Как повлиять на отображение файла в Viewer-e

Post by Tim Sobolev »

rustyx wrote:
John Doe wrote:Можно, почему нет, и апи никакого не нужно. Для этого проще использовать фар 1.75.
Как? И почему проще 1.75?
В 1.75 можно вручную задать таблицу кодировки, построив её по нужному вам правилу , что и позволит сразу смотреть преобразованный файл.
(сама таблица кодировки представляет собой таблицу из 256 байт, позиция каждого байта соответствует начальному значению, значение этого байта -- преобразованному значению)
rustyx wrote:Я бы хотел в 3.0.
В 3.0 берутся только системные таблицы кодировок
stasf
Posts: 111
Joined: Wed 10 Dec, 2014 22:53
Has thanked: 2 times
Been thanked: 1 time

Как повлиять на отображение файла в Viewer-e

Post by stasf »

HaRT wrote:А почему Вы хотите изменять содержимое именно в просмотрщике?
Ну, например, в режиме QUICKVIEW иногда хотелось бы (см.п.3), чтобы плагин имел возможность отображать "свои" файлы особым образом.

Кто-нибудь может подсказать как это правильно сделать в текущей версии API?
Конечно, идеологически правильно, наверное, было бы дергать AnalyseW, но этого не происходит...
А ProcessViewerEventW - не вариант, по-моему.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Как повлиять на отображение файла в Viewer-e

Post by zg »

OPM_QUICKVIEW.
stasf
Posts: 111
Joined: Wed 10 Dec, 2014 22:53
Has thanked: 2 times
Been thanked: 1 time

Как повлиять на отображение файла в Viewer-e

Post by stasf »

zg wrote:OPM_QUICKVIEW.
Ну, это-то понятно. Только вот ни AnalyseW, ни OpenW, ни что-либо другое, чему передается OpMode,
похоже в данной ситуации не вызывается :-((

Или я чего-то недопонимаю?
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Как повлиять на отображение файла в Viewer-e

Post by zg »

это если «свои файлы» — это файлы на панели плагина. а так — никак.
stasf
Posts: 111
Joined: Wed 10 Dec, 2014 22:53
Has thanked: 2 times
Been thanked: 1 time

Как повлиять на отображение файла в Viewer-e

Post by stasf »

zg wrote:это если «свои файлы» — это файлы на панели плагина.
С файлами на панели плагина все понятно - там GetFilesW вызывается.
zg wrote:а так — никак.
Жаль.
А что мешает AnalyseW -> OpenW вызывать? Это ж, вроде, идеологически правильно было бы?
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Как повлиять на отображение файла в Viewer-e

Post by zg »

stasf wrote:А что мешает AnalyseW -> OpenW вызывать?
то что эти функции предназначены для другого?
stasf
Posts: 111
Joined: Wed 10 Dec, 2014 22:53
Has thanked: 2 times
Been thanked: 1 time

Как повлиять на отображение файла в Viewer-e

Post by stasf »

zg wrote:
stasf wrote:А что мешает AnalyseW -> OpenW вызывать?
то что эти функции предназначены для другого?
Ну почему же для другого?
Если пользователь открыль панель Quick View, значит он хочет "заглянуть внутрь" каждого из выбираемых им файлов.
Операция "заглянуть внутрь" - как раз то, что обеспечивают плагины, экспортирующие AnalyseW.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Как повлиять на отображение файла в Viewer-e

Post by zg »

пользователь нажал ctrlq на zip-архиве. arqlite вернул из AnalyseW хэндл. что должно произойти дальше?
stasf
Posts: 111
Joined: Wed 10 Dec, 2014 22:53
Has thanked: 2 times
Been thanked: 1 time

Как повлиять на отображение файла в Viewer-e

Post by stasf »

Теоретически, можно было бы вызвать OpenW с OPM_QUICKVIEW.
Но это приведет к проблемам совместимости.
Поэтому, лучше реализовать вызов новой экспортируемой функции (QuickGetW или QuickOpenW) с параметром типа OpenAnalyseInfo.
При этом, по-видимому, в структуру OpenAnalyseInfo (или в AnalyseInfo) придется добавить ссылку на GetFilesInfo, чтобы плагину было куда отписать свой Qiuck View.
Post Reply

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