Autorun
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, ... 115, 116, 117  Next  :| |:
Total Commander -> Плагины Total Commander

#16:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jun 16, 2010 14:08
    —
Quote:
Могут, конечно, но почему бы не передать некоторые данные, поиск которых занимает некоторое время, но которые уже найдены?
Собственно идея была именно в этом. Если возникнут какие-нибудь мысли насчет такой информации - можно ее добавить в структуру.

Кстати, сделай первым членом структуры поле с ее размером. Тогда плагин сможет по размеру структуры понять, присутствует ли нужное ему поле в структуре - например, если плагин используется в более старой версии. Этот часто использующийся прием несложен и в то же время удобен (в интерфейсе плагинов ТК он тоже используется).

Quote:
Autorun парсит строку и вызывает из соответствующего плагина функцию Autorun_ExecFunc, которой передает имя MyFunc и массив параметров.

Ага, так идея виртуальных функций смотрится еще интереснее, хотя все равно использоваться это будет лишь при запуске ТК. Осталось как следует описать это делоSmile кстати, по-английски бы тоже описать и выложить на wincmd.ru.

Кстати, для примера ты можешь свою movebutton вынести в плагин, а в пример конфига вставить команду для загрузки. Smile

Проблема с загрузкой DLL пока следующая: DLL загружается и выгружается в основном потоке, поэтому все, что выполняется в функции DllMain, выполняется в основном потоке - например, если добавить туда отображение сообщения, ТК будет висеть, пока не нажмешь ОК. А в экспортируемой функции, вызываемой после загрузки DLL, все ок. Это надо документировать.

#17:  Author: Loopback PostPosted: Wed Jun 16, 2010 21:56
    —
MVV wrote:
Кстати, сделай первым членом структуры поле с ее размером.

Разумно. Сделаю.
MVV wrote:
Ага, так идея виртуальных функций смотрится еще интереснее, хотя все равно использоваться это будет лишь при запуске ТК. Осталось как следует описать это дело кстати, по-английски бы тоже описать и выложить на wincmd.ru.

Зато универсально при минимуме кода Smile
Всё опишу, разумеется, но чуть позже.
MVV wrote:
Кстати, для примера ты можешь свою movebutton вынести в плагин, а в пример конфига вставить команду для загрузки.

Это в планах.

#18:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jun 17, 2010 23:38
    —
Вот уж не знаю, что твой плагин делает, но хуки после него ставить ваще нереально... Exclamation

#19:  Author: Loopback PostPosted: Fri Jun 18, 2010 00:25
    —
MVV
Ну не знаю... ничего особенного, а уж тем более связанного с хуками. В чистом виде после загрузки, плагин только получает пути тотала из переменных, окно текущей копии тотала через EnumWindows и список команд из TOTALCMD.INC. Далее стартует новый поток, в котором выполняются команды. Собственно, всё.

#20:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Jun 18, 2010 10:15
    —
Да я и сам понимаю, что всё, но как видишь... И прямо из DllMain пробовал вызывать функцию инициализации, и из твоего плагина (в отдельном потоке). Попробовать еще интереса ради загрузить DLL, из которой загрузить эту DLL...

Кстати, а зачем через EnumWindows? Куда проще маленький цикл с FindWidnowEx, где проверять принадлежность окна процессу. И callback-функция не нужна.

Code:
bool GetMainWnd(bool Override=0) {
   if (hMainWnd&&!Override) return 0;
   HWND hwnd=0;
   DWORD pid=GetCurrentProcessId(), wndpid;
   while (hwnd=FindWindowEx(0, hwnd, L"TTOTAL_CMD", 0)) {
      GetWindowThreadProcessId(hwnd, &wndpid);
      if (pid!=wndpid) continue;

      hMainWnd=hwnd;
      return 1;
   }

   return 0;
}

(на Delphi будет примерно то же самое)

#21:  Author: Loopback PostPosted: Sat Jun 19, 2010 19:34
    —
MVV wrote:
Кстати, а зачем через EnumWindows?

Да теперь уже и не вспомню...


В общем, вторая бета: скачать.

Поменял обработку необязательных параметров - вроде да, стало удобнее. За счет этого ликвидировал команду SetOption. MoveButton вынесена в отдельный плагин к плагину Smile

#22:  Author: MVVLocation: Ростов-Дон PostPosted: Sat Jun 19, 2010 21:46
    —
Во, уже приличное описание. И необязательные параметры теперь указывать куда удобнее.

Предлагаю называть плагины так: Autorun_MoveButton.dll, Autorun_HideMenu.dll и т.п., чтобы подчеркнуть их принадлежность к автозапуску.

Еще предлагаю в первом посте добавлять ссылки на модулиSmile например, на этот пост с моим Autorun_HideMenu.

#23:  Author: Loopback PostPosted: Sun Jun 20, 2010 00:06
    —
MVV wrote:
Предлагаю называть плагины так: Autorun_MoveButton.dll, Autorun_HideMenu.dll и т.п., чтобы подчеркнуть их принадлежность к автозапуску.

Не возражаю.
MVV wrote:
Еще предлагаю в первом посте добавлять ссылки на модули например, на этот пост с моим Autorun_HideMenu.

Извините, старые сообщения могут редактировать только модераторы
Надо просить разблокировать Smile

#24:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Jun 20, 2010 00:13
    —
Loopback wrote:
Надо просить разблокировать Smile

Тут просить. И потом поддерживать актуальную инфу в первом постеSmile

А вообще, как уже упоминалось, надо сделать хоть какую английскую документацию - и на wincmd.ru.


Last edited by MVV on Sun Jun 20, 2010 08:29; edited 1 time in total

#25:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Jun 20, 2010 00:26
    —
Loopback wrote:
Надо просить разблокировать

Достаточно написать, например, мне в личку — что в какое место поста и в каком виде добавить.

MVV wrote:
А вообще, как уже упоминалось, надо сделать хоть какую английскую документацию - и на wincm.ru.

Всецело подерживаю.

#26:  Author: Loopback PostPosted: Sun Jun 20, 2010 01:03
    —
MVV wrote:
А вообще, как уже упоминалось, надо сделать хоть какую английскую документацию - и на wincm.ru.

Обычно я с английской и начинаю, но тут сначала для широкого распространения не планировалось. Не проблема, к релизу напишу.

Avada wrote:
Достаточно написать, например, мне в личку — что в какое место поста и в каком виде добавить.

Да это понятно, но хотелось бы просто иметь возможность редактировать первый пост и модераторов по каждой правке не дергать.

#27:  Author: CaptainFlintLocation: Москва PostPosted: Sun Jun 20, 2010 01:24
    —
Разблокировал. Но вообще, на будущее, выше дали ссылку на тему, где надо постить запросы на разблокировку. Так будет быстрее и с гарантией, т.к. в ворохе обсуждений я могу и проглядеть, что кому-то там понадобилось править старый пост.

#28:  Author: Loopback PostPosted: Sun Jun 20, 2010 16:41
    —
CaptainFlint
Спасибо.
Я ссылку видел, решил просто заняться этим завтра (т.е. теперь уже сегодня).

#29:  Author: Loopback PostPosted: Tue Jun 22, 2010 00:46
    —
Выложил плагин на wincmd.ru, теперь его постоянное место там.

В релиз добавил функцию IniWrite, идея которой возникла после прочтения этой темы, и которая, как мне кажется, может быть весьма востребована авторами сборок Smile

#30:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jun 22, 2010 07:29
    —
Loopback wrote:
Выложил плагин на wincmd.ru, теперь его постоянное место там.

Замечательно, что это наконец-то произошло.



Total Commander -> Плагины Total Commander


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

Goto page Previous  1, 2, 3, ... 115, 116, 117  Next  :| |:
Page 2 of 117

Powered by phpBB © 2001, 2005 phpBB Group