Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3, ... 76, 77, 78  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
MVV



Joined: 15 Oct 2009
Posts: 4574
Location: Ростов-Дон

Post (Separately) Posted: Wed Jun 16, 2010 14:08    Post subject: Reply with quote

Quote:
Могут, конечно, но почему бы не передать некоторые данные, поиск которых занимает некоторое время, но которые уже найдены?
Собственно идея была именно в этом. Если возникнут какие-нибудь мысли насчет такой информации - можно ее добавить в структуру.

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

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

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

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

Проблема с загрузкой DLL пока следующая: DLL загружается и выгружается в основном потоке, поэтому все, что выполняется в функции DllMain, выполняется в основном потоке - например, если добавить туда отображение сообщения, ТК будет висеть, пока не нажмешь ОК. А в экспортируемой функции, вызываемой после загрузки DLL, все ок. Это надо документировать.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 735

Post (Separately) Posted: Wed Jun 16, 2010 21:56    Post subject: Reply with quote

MVV wrote:
Кстати, сделай первым членом структуры поле с ее размером.

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

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

Это в планах.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4574
Location: Ростов-Дон

Post (Separately) Posted: Thu Jun 17, 2010 23:38    Post subject: Reply with quote

Вот уж не знаю, что твой плагин делает, но хуки после него ставить ваще нереально... Exclamation
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 735

Post (Separately) Posted: Fri Jun 18, 2010 00:25    Post subject: Reply with quote

MVV
Ну не знаю... ничего особенного, а уж тем более связанного с хуками. В чистом виде после загрузки, плагин только получает пути тотала из переменных, окно текущей копии тотала через EnumWindows и список команд из TOTALCMD.INC. Далее стартует новый поток, в котором выполняются команды. Собственно, всё.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4574
Location: Ростов-Дон

Post (Separately) Posted: Fri Jun 18, 2010 10:15    Post subject: Reply with quote

Да я и сам понимаю, что всё, но как видишь... И прямо из 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 будет примерно то же самое)
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 735

Post (Separately) Posted: Sat Jun 19, 2010 19:34    Post subject: Reply with quote

MVV wrote:
Кстати, а зачем через EnumWindows?

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


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

Поменял обработку необязательных параметров - вроде да, стало удобнее. За счет этого ликвидировал команду SetOption. MoveButton вынесена в отдельный плагин к плагину Smile
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4574
Location: Ростов-Дон

Post (Separately) Posted: Sat Jun 19, 2010 21:46    Post subject: Reply with quote

Во, уже приличное описание. И необязательные параметры теперь указывать куда удобнее.

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

Еще предлагаю в первом посте добавлять ссылки на модулиSmile например, на этот пост с моим Autorun_HideMenu.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 735

Post (Separately) Posted: Sun Jun 20, 2010 00:06    Post subject: Reply with quote

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

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

Извините, старые сообщения могут редактировать только модераторы
Надо просить разблокировать Smile
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4574
Location: Ростов-Дон

Post (Separately) Posted: Sun Jun 20, 2010 00:13    Post subject: Reply with quote

Loopback wrote:
Надо просить разблокировать Smile

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

А вообще, как уже упоминалось, надо сделать хоть какую английскую документацию - и на wincmd.ru.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Sun Jun 20, 2010 08:29; edited 1 time in total
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8979
Location: Россия, Саратов

Post (Separately) Posted: Sun Jun 20, 2010 00:26    Post subject: Reply with quote

Loopback wrote:
Надо просить разблокировать

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

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

Всецело подерживаю.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 735

Post (Separately) Posted: Sun Jun 20, 2010 01:03    Post subject: Reply with quote

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

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

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

Да это понятно, но хотелось бы просто иметь возможность редактировать первый пост и модераторов по каждой правке не дергать.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5876
Location: Москва

Post (Separately) Posted: Sun Jun 20, 2010 01:24    Post subject: Reply with quote

Разблокировал. Но вообще, на будущее, выше дали ссылку на тему, где надо постить запросы на разблокировку. Так будет быстрее и с гарантией, т.к. в ворохе обсуждений я могу и проглядеть, что кому-то там понадобилось править старый пост.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 735

Post (Separately) Posted: Sun Jun 20, 2010 16:41    Post subject: Reply with quote

CaptainFlint
Спасибо.
Я ссылку видел, решил просто заняться этим завтра (т.е. теперь уже сегодня).
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 735

Post (Separately) Posted: Tue Jun 22, 2010 00:46    Post subject: Reply with quote

Выложил плагин на wincmd.ru, теперь его постоянное место там.

В релиз добавил функцию IniWrite, идея которой возникла после прочтения этой темы, и которая, как мне кажется, может быть весьма востребована авторами сборок Smile
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8979
Location: Россия, Саратов

Post (Separately) Posted: Tue Jun 22, 2010 07:29    Post subject: Reply with quote

Loopback wrote:
Выложил плагин на wincmd.ru, теперь его постоянное место там.

Замечательно, что это наконец-то произошло.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, ... 76, 77, 78  Next
Page 2 of 78

 
Jump to:  
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