Страница 1 из 1
Написание плагина архиватора WCX
Добавлено: Чт май 19, 2005 20:36
Hram
Подскажите пожалуйста. Пишу плагин архиватора. После удаления файла из архива из списка файлов TC он не удаляется. И запрос на ReadHeader() также не вызывается? Если можно пример.
Добавлено: Вс май 22, 2005 11:24
D1P
Может поможет, если пошлёшь окну тотала собщение об обенвлении, примерно так:
Код: Выделить всё
SendMessage (Totalcmd_Window_Handle,WM_USER,540{cm_RereadSource});
Я только не помню, где должна предаваться команда в lParam или wParam.
Добавлено: Вс май 22, 2005 21:28
Hram
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.
Добавлено: Чт май 26, 2005 11:36
D1P
А как получить Totalcmd_Window_Handle
MSDN тебе в помощь и RTFM WinAPI

. Название функции запамятовал, то ли GetWindowHandle, то ли ещё как-то... в общем что-то такое.
Добавлено: Пн янв 16, 2006 18:57
NetSpider
Не фиг париться. На самом деле все проще. На форуме 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 плагина окажешься в директории с архивом, а не в архиве.
Добавлено: Чт авг 03, 2006 10:37
Моторокер
На форуме Ghisler писал, что список файлов обновится, если изменить время доступа к архиву, либо его размер.
До удаления ещё не дошёл.
А разве при удалении (т.е. изменении архива) его дата и размер не меняются?