Страница 11 из 243

Добавлено: Чт мар 03, 2011 18:41
MVV
Повторяю, при выполнении cm_UnloadPlugins плагин Autorun.wdx будет выгружен, после чего при смене папки в тотале он будет опять загружен самим тоталом. И при новом вызове cm_UnloadPlugins или при закрытии тотала плагин снова будет выгружен.

Если добавлять утилиты для загрузки и выгрузки в Autorun.wdx, они будут загружаться и выгружаться соответственно вместе с плагином.

В то время как модуль, который увеличивает счетчик ссылок на себя, загружается лишь однажды при первой загрузке плагина Autorun.wdx, и выгружается тоже ровно 1 раз - при закрытии тотала, когда система выгружает все модули.

Кстати, как вариант, предлагаю автору добавить в плагин команду для увеличения числа ссылок на себя - тогда плагину станут не страшны выгрузки через cm_UnloadPlugins, ну и ключ /T тогда будет более полезным, как и запуск утилит, которые должны работать в фоне тотала. А делается это элементарно:

Код: Выделить всё

			wchar_t libname[1024];
			GetModuleFileName(hModule, libname, TSIZE(libname));
			LoadLibrary(libname);

Добавлено: Чт мар 03, 2011 18:49
Flasher
Я чрезвычайно редко использую cm_UnloadPlugins, поэтому описанные обстоятельства меня не пугают. Но раз предложен путь наладки самого плагина, то данный вопрос можно опустить.

Добавлено: Чт мар 03, 2011 22:19
Loopback
Посмотрел, подумал - идея интересная, что-то на работе сразу ее не понял. Можно добавить что-нибудь типа "AutorunBlockUnload", при ее наличии будет производиться блокировка выгрузки. Тогда параметр /T будет работать как надо. Попробую в праздники.

Добавлено: Пн мар 07, 2011 23:03
Loopback
Ну, в общем вот: скачать.

Следует отметить особенность завершения программ, запущенных с помощью ShellExecuteEx, которая используется сейчас. Если командой запускается ассоциированный файл, например html, и он открывается в уже запущенной копии браузера, то при завершении браузер закрыт не будет. С запуском программ проблем быть не должно.

Добавлено: Вт мар 08, 2011 00:09
Flasher
Неплохо! Есть пару пожеланий:
1. запускать файлы в соответствии с внутренними ассоциациями ТС, если это возможно;
2. сделать команду только на закрытие по вероятности открытых программ.

Добавлено: Вт мар 08, 2011 09:06
MVV
Flasher писал(а):Неплохо! Есть пару пожеланий:
1. запускать файлы в соответствии с внутренними ассоциациями ТС, если это возможно;
А так ли нужно перегружать подобный плагин такой редкой функцией? Сюда прописывается лишь то, что действительно необходимо запускать при старте тотала, вряд ли сюда входят документы (для запуска которых можно прописать программу явно). И по названию команда ShellExec запускает именно в оболочке Windows.

Кстати, хотелка для TC - внутренняя команда для запуска файла внутренней ассоциацией. В том числе чтобы можно было послать тоталу сообщение WM_COPYDATA с этой командой - это решило бы много проблем с запуском файлов посредством внутренних ассоциаций.
Flasher писал(а):2. сделать команду только на закрытие по вероятности открытых программ.
Ты так часто убиваешь что-то при запуске тотала? :roll:
А прямой запуск taskkill.exe чем плох?

Хотя, в виде отдельных плагинов эти байды оформить можно было бы. Вопрос в том, как много людей в них будут нуждаться - я точно не в их числе. :)
Loopback в Readme_ru писал(а):Полезно для использования ShellExec с ключом /T. Если команда не используется, блокировка выключена.
Не совсем ясно, какая команда может не использоваться - AutorunBlockUnload или ShellExec - возникает некоторая неоднозначность. Думаю, лучше было бы написать что-то вроде "По умолчанию блокировка выключена".

Добавлено: Вт мар 08, 2011 14:01
Flasher
MVV писал(а):А так ли нужно перегружать подобный плагин такой редкой функцией? Сюда прописывается лишь то, что действительно необходимо запускать при старте тотала, вряд ли сюда входят документы (для запуска которых можно прописать программу явно).
Насчёт перегружать - не понял. По конкретным файлам судить каждому юзеру в отдельности. Я не писал, что это именно документы должны быть.
MVV писал(а):Ты так часто убиваешь что-то при запуске тотала?
При запуске Тотала я ничего не убиваю. Зачем? :?
MVV писал(а):А прямой запуск taskkill.exe чем плох?
А разве есть в autotun функция запуска чего-то при закрытии ТС? А плох как минимум тем, что консольный.
MVV писал(а):Хотя, в виде отдельных плагинов эти байды оформить можно было бы.
Сколько ещё таких "отдельно" ты нам волен предложить? Пока фантазия не кончится? :D Уверен, что добиться описанного в autorun-e труда не составит, функционал для открываемых прог уже есть, почему же станет проблемой для потенциально открытых?
MVV писал(а):Вопрос в том, как много людей в них будут нуждаться - я точно не в их числе.
Когда ты допиливал tcfs2 по моим наводкам, так ли ты часто думал о многих? :wink:
Раз ты о себе заговорил, отвечу тем же - мне эта возможность нужна в гораздо в большей степени, чем только появившаяся. У всех свои приоритеты. Носишь ТС на флешке, запускаешь ряд программ с неё же, уходишь - в спешке закрывать все программы лень, закрыл ТС - и приложения все закрылись. Это автоматизация, Виталий. :wink:

Добавлено: Вт мар 08, 2011 14:35
MVV
Flasher писал(а):При запуске Тотала я ничего не убиваю. Зачем?
А зачем тогда в авторане функция убийства чего-то? :D
А разве есть в autotun функция запуска чего-то при закрытии ТС? А плох как минимум тем, что консольный.
Того, что авторан запускает - есть. А остальное спокойно можно убивать из батника, который будет вызывать при выходе мой плагинчик, описанный на предыдущей странице. :D
И этого консольного окна, свернутого в кнопку панели задач, ты даже заметить не успеешь. 8)
Сколько ещё таких "отдельно" ты нам волен предложить? Пока фантазия не кончится? Уверен, что добиться описанного в autorun-e труда не составит, функционал для открываемых прог уже есть, почему же станет проблемой для потенциально открытых?
Для открываемых система возвращает дескриптор, по которому можно не отходя от кассы завершить запущенный процесс. А по всем остальным - нужно перебирать процессы, фильтровать и т.п., это совсем другая песня, совершенно не нужная большинству использующих плагин. К тому же, уже есть способы решить эту проблему. :)

Flasher писал(а):Когда ты допиливал tcfs2 по моим наводкам, так ли ты часто думал о многих?
Предлагаешь поубирать всё, что я добавил с твоих наводок? 8)
И потом, не считая функции установки сепаратора все функции TCFS2 объединены общей идеей.

Добавлено: Вт мар 08, 2011 14:41
Flasher
MVV писал(а):А зачем тогда в авторане функция убийства чего-то?
Зачем спрашивать то, на что уже дан ответ?
MVV писал(а):А остальное спокойно можно убивать из батника, который будет вызывать при выходе мой плагинчик, описанный на предыдущей странице. :D И этого консольного окна, свернутого в кнопку панели задач, ты даже заметить не успеешь.
Я против батников в таких делах, да и правку легче осуществлять в cfg.
MVV писал(а):совершенно не нужная большинству использующих плагин
Моё отношение к бездоказательным обобщениям ты знаешь. Дай автору самому разобраться, что да как...
MVV писал(а):Предлагаешь поубирать всё, что я добавил с твоих наводок?
Забавная шутка. :D
MVV писал(а):И потом, не считая функции установки сепаратора все функции TCFS2 объединены общей идеей.
И как же эта идея называется? Уж точно не "FullScreen".

Добавлено: Вт мар 08, 2011 22:08
Loopback
Flasher писал(а):запускать файлы в соответствии с внутренними ассоциациями ТС, если это возможно;
Теоретически можно. Но дело в том, что функциональность запуска ассоциированных в системе файлов обеспечивается системной функцией, и я, в общем-то, считаю это очень второстепенным - есть и ладно. Тут же надо огород городить.
Flasher писал(а): сделать команду только на закрытие по вероятности открытых программ.
Flasher писал(а):Уверен, что добиться описанного в autorun-e труда не составит, функционал для открываемых прог уже есть, почему же станет проблемой для потенциально открытых?
Как верно заметил MVV, это действительно другая песня. То, что сейчас есть, тут не поможет.

В общем, если уж и делать этот функционал, то я тоже склоняюсь к мысли об отдельном плагине. Не по отдельному для каждой функции, конечно, а что-то вроде библиотеки, например, Autorun_Process.

Добавлено: Вт мар 08, 2011 22:49
Flasher
Loopback писал(а):Тут же надо огород городить.
Насколько это жертвенно? Цеплять хотя бы бесшаблонные маски получится?
Loopback писал(а):То, что сейчас есть, тут не поможет.
А если блокировать проги на полный запуск, но оставлять в памяти идентификаторы процессов для их последующего закрытия?

Добавлено: Ср мар 09, 2011 00:53
HA3APET
Loopback
Спасибо за долгожданный параметр /T
Потестировал на ряде программ.
Всё отлично завершается, но если программа отображается в трее, то после закрытия она продолжает визуально отображаться в трее, пока его не обновить, например провести мышкой по трею. Это известная проблема. Она так же наблюдается если закрывать программу через taskkill /F, но если использовать taskkill /T, то всё завершается более корректно.
Нельзя ли сделать завершение процесса, более "мягким" с завершением всех его дочерних процессов?

Добавлено: Ср мар 09, 2011 01:19
Flasher
HA3APET писал(а):но если программа отображается в трее, то после закрытия она продолжает визуально отображаться в трее, пока его не обновить, например провести мышкой по трею. Это известная проблема.
Точно так же происходит, если убивать процессы из Диспетчера задач.

Добавлено: Ср мар 09, 2011 01:38
HA3APET
Flasher
Да, да. Но есть же положительный пример - taskkill /T

Добавлено: Ср мар 09, 2011 16:05
MVV
А я что-то пытался убить KatMouse.exe через taskkill с параметром /t - ни фига не дохнет. А с параметром /f (или /f /t) дохнет, и остается в трее иконка. Так что не думаю, что параметр /t как-то может помочь удалить иконку из трея, т.к. это проблема винды, что она при закрытии процессов не удаляет их значки из трея автоматически.