Написание плагина архиватора WCX
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Написание плагинов для Total Commander

#1: Написание плагина архиватора WCX Author: HramLocation: Питер PostPosted: Thu May 19, 2005 20:36
    —
Подскажите пожалуйста. Пишу плагин архиватора. После удаления файла из архива из списка файлов TC он не удаляется. И запрос на ReadHeader() также не вызывается? Если можно пример.

#2:  Author: D1PLocation: Тбилиси PostPosted: Sun May 22, 2005 11:24
    —
Может поможет, если пошлёшь окну тотала собщение об обенвлении, примерно так:
Code:
SendMessage (Totalcmd_Window_Handle,WM_USER,540{cm_RereadSource});


Я только не помню, где должна предаваться команда в lParam или wParam.

#3:  Author: HramLocation: Питер PostPosted: Sun May 22, 2005 21:28
    —
D1P Спасибо за ответ.
А как получить Totalcmd_Window_Handle напрямую в плагин он не передается. Или например запущено несколько TC как узнать какой из них вызвал плагин? И почему не вызывается
OpenArchive() with OpenMode==PK_OM_LIST
repeat
ReadHeader()
ProcessFile(...,PK_SKIP,...)
until error returned
CloseArchive()
После любой из операций над архивом происходит этот цикл вызова процедур, а после DeleteFiles() нет и в SetChangeVolProc() и SetProcessDataProc() hArcData=0xffffffff.

#4:  Author: D1PLocation: Тбилиси PostPosted: Thu May 26, 2005 11:36
    —
Quote:
А как получить Totalcmd_Window_Handle


MSDN тебе в помощь и RTFM WinAPI Smile. Название функции запамятовал, то ли GetWindowHandle, то ли ещё как-то... в общем что-то такое.

#5:  Author: NetSpiderLocation: Елец PostPosted: Mon Jan 16, 2006 19:57
    —
Не фиг париться. На самом деле все проще. На форуме Ghisler писал, что список файлов обновится, если изменить время доступа к архиву, либо его размер.
Время меняем через SetFileTime(HANDLE hFile, FILETIME *Creation, FILETIME *LastAccess, FILETIME *LastWrite). Кажется такая функция была. Я использовал

void WINAPI SetCurFileTime(HANDLE hFileHandle)
{
SYSTEMTIME time;
FILETIME MyFileTime, NEWFileTime;

GetLocalTime(&time);
SystemTimeToFileTime(&time,&MyFileTime);
LocalFileTimeToFileTime(&MyFileTime,&NEWFileTime);

SetFileTime(hFileHandle,NULL,&NEWFileTime,&NEWFileTime);
return;
}

После этого окно всегда обновлялось. А если послать сообщение, как вы писали, то в случае wcx плагина окажешься в директории с архивом, а не в архиве.

#6:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Thu Aug 03, 2006 10:37
    —
Quote:
На форуме Ghisler писал, что список файлов обновится, если изменить время доступа к архиву, либо его размер.

До удаления ещё не дошёл.
А разве при удалении (т.е. изменении архива) его дата и размер не меняются?



Total Commander -> Написание плагинов для Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group