View previous topic :: View next topic |
Author |
Message |
Hram
Joined: 19 May 2005 Posts: 113 Location: Питер
|
(Separately) Posted: Thu May 19, 2005 20:36 Post subject: Написание плагина архиватора WCX |
|
|
Подскажите пожалуйста. Пишу плагин архиватора. После удаления файла из архива из списка файлов TC он не удаляется. И запрос на ReadHeader() также не вызывается? Если можно пример. |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Sun May 22, 2005 11:24 Post subject: |
|
|
Может поможет, если пошлёшь окну тотала собщение об обенвлении, примерно так:
Code: | SendMessage (Totalcmd_Window_Handle,WM_USER,540{cm_RereadSource}); |
Я только не помню, где должна предаваться команда в lParam или wParam. |
|
Back to top |
|
|
Hram
Joined: 19 May 2005 Posts: 113 Location: Питер
|
(Separately) Posted: Sun May 22, 2005 21:28 Post subject: |
|
|
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. |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Thu May 26, 2005 11:36 Post subject: |
|
|
Quote: | А как получить Totalcmd_Window_Handle |
MSDN тебе в помощь и RTFM WinAPI . Название функции запамятовал, то ли GetWindowHandle, то ли ещё как-то... в общем что-то такое. |
|
Back to top |
|
|
NetSpider
Joined: 13 Jan 2006 Posts: 1 Location: Елец
|
(Separately) Posted: Mon Jan 16, 2006 19:57 Post subject: |
|
|
Не фиг париться. На самом деле все проще. На форуме 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 плагина окажешься в директории с архивом, а не в архиве. |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Thu Aug 03, 2006 10:37 Post subject: |
|
|
Quote: | На форуме Ghisler писал, что список файлов обновится, если изменить время доступа к архиву, либо его размер. |
До удаления ещё не дошёл.
А разве при удалении (т.е. изменении архива) его дата и размер не меняются? _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
|