View previous topic :: View next topic |
Author |
Message |
KorneySan
Joined: 25 May 2011 Posts: 4 Location: Беларусь, Гомель
|
(Separately) Posted: Wed May 25, 2011 13:58 Post subject: WFX Вызов функций TC изнутри |
|
|
Пишу FS-плагин.
Есть ли возможность:
1. обрабатывать в плагине нажатие F3, F4, F9 ?
2. использовать для внутреннего копирования функции самого TC ? (пример: файл плагина - это реальный файл на винте, и при желании его можно куда-нибудь скопировать или перенести).
P.S. Поиск тут ничего не нашёл, FsLinksToLocalFiles/FsGetLocalName попробовал - не работает. _________________ Praemonitus praemunitus |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Wed May 25, 2011 15:16 Post subject: |
|
|
Обрабатывать нажатия клавиш в плагине нельзя (разве что хуками и прочей низкоуровневой ерундой).
По нажатию F3/F4 тотал обычно извлекает файл во временную папку и открывает в листере/редакторе. По F8 (думаю, это подразумевалось, а не F9) тотал вызывает функцию плагина по удалению файла/папки. Если плагин скажет тоталу, что он - плагин временной панели, тотал будет спрашивать у плагина путь к физическому файлу вместо извлечения файла во временную папку.
Использовать функции тотала нельзя, никакой интерфейс для этого тотал не предоставляет (единственное, что предоставляет - это показ окон с полем ввода). _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
KorneySan
Joined: 25 May 2011 Posts: 4 Location: Беларусь, Гомель
|
(Separately) Posted: Wed May 25, 2011 15:25 Post subject: |
|
|
MVV wrote: | По F8 (думаю, это подразумевалось, а не F9) тотал вызывает функцию плагина по удалению файла/папки. |
Я имел в виду именно F9, поскольку F8 у меня отлично заработала - после вопроса об удалении срабатывают все "вложенные" действия.
MVV wrote: | Если плагин скажет тоталу, что он - плагин временной панели, тотал будет спрашивать у плагина путь к физическому файлу вместо извлечения файла во временную папку. |
Пробовал. В списке есть файлы типа .txt, которые, разумеется, должны были открыться. Однако на выходе получился пшик. ЧЯДНТ?
MVV wrote: | Использовать функции тотала нельзя, никакой интерфейс для этого тотал не предоставляет |
Т.е. чтобы скопировать файл "из плагина, придётся реализовывать FsGetFile и остальной геморрой самостоятельно?
И ещё вопрос. Нашёл тут на форуме способ обновить панель через cm_RereadSource, однако и он не работает. В тоже время при "открытии" файла текст подтверждения указывает на то, что информация о файлах успешно обновилась. Почему же не обновилась панель? _________________ Praemonitus praemunitus |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Wed May 25, 2011 15:53 Post subject: |
|
|
Quote: | Я имел в виду именно F9 |
А что есть F9?
Quote: | Пробовал. В списке есть файлы типа .txt, которые, разумеется, должны были открыться. |
Плагин точно экспортирует функции FsLinksToLocalFiles и FsGetLocalName?
Quote: | Т.е. чтобы скопировать файл "из плагина, придётся реализовывать FsGetFile и остальной геморрой самостоятельно?
И ещё вопрос. Нашёл тут на форуме способ обновить панель через cm_RereadSource, однако и он не работает. В тоже время при "открытии" файла текст подтверждения указывает на то, что информация о файлах успешно обновилась. Почему же не обновилась панель? |
Придется. Тотал ведь не знает, какая файловая система у плагина.
При вызове cm_RereadSource какая панель активна? Обновляется только активная панель. И вообще, вызов этой команды приводит к куче неприятных моментов типа выхода из архивов. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
KorneySan
Joined: 25 May 2011 Posts: 4 Location: Беларусь, Гомель
|
(Separately) Posted: Wed May 25, 2011 16:16 Post subject: |
|
|
MVV wrote: | А что есть F9? |
ХЕЗ. Я думал, что есть реакция на Fx, так что вопрос закрыт.
MVV wrote: | Плагин точно экспортирует функции FsLinksToLocalFiles и FsGetLocalName? |
Code: |
function FsLinksToLocalFiles:bool; stdcall;
begin
Result:=True;
end;
function FsGetLocalName(RemoteName:pchar;maxlen:integer):bool; stdcall;
var
fn, rn: String;
i: Integer;
begin
CS_GLN.Enter;
fn:=StrPas(RemoteName);
Delete(fn, 1, 1);
i:=DataIndex(fn);
if i<0 then
Result:=False
else
begin
rn:=ExtractToken('saveto', DataGet(i));
if FileExists(rn) then
begin
FillChar(RemoteName, maxlen, 0);
if Length(rn)<maxlen then
begin
StrPCopy(RemoteName, rn);
Result:=true;
end
else
Result:=false;
end
else
Result:=false;
end;
CS_GLN.Leave;
end;
exports
FsInit,
FsFindFirst,
FsFindNext,
FsFindClose,
FsGetDefRootName,
FsSetDefaultParams,
FsExecuteFile,
//FsGetFile,
//FsStatusInfo,
FsExtractCustomIcon,
FsDeleteFile,
FsLinksToLocalFiles,
FsGetLocalName;
|
Как-то так.
MVV wrote: | Придется. Тотал ведь не знает, какая файловая система у плагина. |
Ясно, спасибо.
MVV wrote: | При вызове cm_RereadSource какая панель активна? Обновляется только активная панель. И вообще, вызов этой команды приводит к куче неприятных моментов типа выхода из архивов. |
Активна панель с моим плагином. Более того - панель не обновляется даже по кнопке "Обновить содержимое панели".
Просто задача стоит таким образом: происходят внешние изменения данных, которые должны отразиться в обновлении панели (меняются значки и размер файлов). _________________ Praemonitus praemunitus |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6170 Location: Москва
|
(Separately) Posted: Thu May 26, 2011 01:25 Post subject: |
|
|
KorneySan wrote: | Просто задача стоит таким образом: происходят внешние изменения данных, которые должны отразиться в обновлении панели (меняются значки и размер файлов). |
Поменяй для обновившегося файла дату модификации, чтобы при перечитывании каталога Тотал её получил. Тогда он обновит и остальное. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
KorneySan
Joined: 25 May 2011 Posts: 4 Location: Беларусь, Гомель
|
(Separately) Posted: Thu May 26, 2011 09:13 Post subject: |
|
|
CaptainFlint wrote: | Поменяй для обновившегося файла дату модификации, чтобы при перечитывании каталога Тотал её получил. Тогда он обновит и остальное. |
Спасибо, помогло.
До этого я устанавливал дату модификации, одинаковую с датой создания. Теперь я устанавливаю дату модификации в текущее время, обновление работает. _________________ Praemonitus praemunitus |
|
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
|