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

#31:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jun 22, 2010 10:12
    —
Рано радовался. Crying or Very sad При установленном и штатно работающем Autorun (конфигурация по умолчанию) применение команды cm_UnloadPlugins молча закрывает Тотал. Для меня это делает использование плагина при всех его достоинствах невозможным. Вынужден вернуться на MoveButton, отказавшись (надеюсь, временно) от прочего функционала.
(Собственно, это происходило и в самой первой версии Autorun, но тогда я по запарке не уделил этому на форуме должного внимания, а просто тихо откатился на прежний плагин.)

#32:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Jun 22, 2010 10:28
    —
Avada wrote:
Рано радовался. Crying or Very sad При установленном и штатно работающем Autorun (конфигурация по умолчанию) применение команды cm_UnloadPlugins молча закрывает Тотал.

Подтверждаю. Но только при загруженном Autorun_MoveButton.dll, причем, не просто загруженном, а активном. Если закомментировать строчку MoveOptionsButton MOVE_LEGACY в конфиге, вылет уже не происходит.

#33:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jun 22, 2010 12:08
    —
MVV
Благодарю за уточнение, это позволяет в качестве временного решения хотя бы распределить нужный функционал между двумя плагинами.

#34:  Author: Loopback PostPosted: Tue Jun 22, 2010 15:40
    —
Исправил.

Использовал альтернативный RTL, и похоже в нем баг. В итоге Autorun_MoveButton просто не получал сообщение DLL_PROCESS_DETACH и не уничтожал поток.

#35:  Author: MVVLocation: Ростов-Дон PostPosted: Tue Jun 22, 2010 15:44
    —
Подтверждаю, что работает без вылетов. Win7x64. Cool

Я в своей HideMenu вообще CRT не использовал, чистый API, потому ни глюков, ни избыточного кода. Smile

#36:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jun 22, 2010 16:38
    —
Тоже подтверждаю, что вылета больше нет. WinXP SP3.

#37:  Author: Loopback PostPosted: Tue Jun 22, 2010 21:54
    —
MVV wrote:
Я в своей HideMenu вообще CRT не использовал, чистый API, потому ни глюков, ни избыточного кода.

К сожалению, в Delphi совсем отключить использование RTL дело не очень тривиальное, поскольку в этом случае теряется возможность работать с некоторыми стандартными заголовочными файлами, в том числе Windows, где прописаны прототипы функций WinAPI. А так MoveButton тоже на чистом WinAPI.

#38:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Jun 23, 2010 20:46
    —
По поводу добавления переменных.
Запускаю Тотал с подключённым Autorun. Смотрю переменные (cmd /k set или FS-плагин Environment Variables). В хвост значений переменной Path действительно добавилось C:\Totalcmd.
Перезапускаю TC (выполняется кнопкой, я использую ReloadTC). Снова смотрю список переменных. Теперь там в конце уже две штуки — C:\Totalcmd;C:\Totalcmd. Если повторять перезапуск, то до настоящего закрытия TC этот хвост будет наращиваться. То же самое происходит и после применения команды cm_UnloadPlugins.
В принципе, работать это не мешает, но я не уверен, что такое поведение правильно.

#39:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jun 23, 2010 23:00
    —
Кстати, да, мысль верная. Но тут надо подумать, что можно сделать. Ведь плагин должен как-то определить, что его черное дело уже выполненоSmile откуда он знает, что его запускают из окружения, где переменные уже обновлены. И откуда он знает, не изменились ли значения переменных после того как он их изменял... Тут палка о двух концах... Exclamation

#40:  Author: Loopback PostPosted: Wed Jun 23, 2010 23:08
    —
Avada
Да, переменные же наследуются... Из тотала вызвали ReloadTC, из него опять тотал - а переменная осталась та же, и авторан опять добавляет строку. С выгрузкой плагинов тем более понятно.

Это, конечно, не очень хорошо. Но в принципе эта проблема касается только переменных окружения. Пожалуй, стоит изменить поведение по-умолчанию при параметре /A, чтобы текст не добавлялся, если такой уже есть в конце переменной. А если кому вдруг нужна возможность дублирования - ввести новый параметр, разрешающий дублирование. Хотя тоже не айс, конечно, если переменная будет дополнительно изменена позже.

Была еще идея - создавать новую переменную-маркер. Тогда плагин точно будет знать, что он уже выполнялся. Но мне кажется это еще хуже - после выгрузки и повторной загрузки плагин будет неявно что-то выполнять, а что-то нет. Ну и мусор в виде дополнительной переменной.

#41:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Jun 23, 2010 23:45
    —
Про маркер и я думал, но опять же, как узнать, надо ли дописывать переменную - а вдруг надо еще раз.

Наверное, самая удачная мысль - ввести параметр, разрешающий добавление к переменной, если этот текст в ней уже есть. Так, если надо дописывать - юзер укажет параметр.

#42:  Author: Loopback PostPosted: Wed Jun 23, 2010 23:52
    —
MVV wrote:
Наверное, самая удачная мысль - ввести параметр, разрешающий добавление к переменной, если этот текст в ней уже есть. Так, если надо дописывать - юзер укажет параметр.

Вот так и сделаю, раз проблема не решается однозначно - пусть будет выбор. В конце-концов, главное чтобы это было документировано.

#43:  Author: Loopback PostPosted: Thu Jun 24, 2010 22:38
    —
Обновил, и добавил параметр /AD, разрешающий дублирование.

#44:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jun 24, 2010 23:11
    —
Loopback
Спасибо, теперь ситуация с переменными меня полностью устраивает.

#45:  Author: MVVLocation: Ростов-Дон PostPosted: Thu Jun 24, 2010 23:29
    —
Ага, работает. Smile



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


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

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

Powered by phpBB © 2001, 2005 phpBB Group