Uninstaller64
Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view
- CaptainFlint
- Сообщения: 6243
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Uninstaller64
Представляю на суд общественности новый плагин Uninstaller64, разработанный как современная альтернатива старенькому UnInstaller'у. Основное отличие, ради чего плагин, собственно, и задумывался — поддержка 64-битных систем, причём не только в виде наличия 64-битной версии плагина как таковой, но и в виде отображения в списке как 32-битных, так и 64-битных установленных программ. Разумеется, не был обойдён стороной и Юникод, без поддержки которого уже было бы просто стыдно выкладывать плагин; нашлось местечко и для других, более мелких приятностей типа информационных полей, возможности хранения настроек в разных каталогах и т.п. Полный список отличий можно найти в истории изменений, опубликованной как в ReadMe-файлах в архиве с плагином, так и на странице плагина.
Ссылки на версию 1.0.1 (25.06.2012):
x32+x64 / зеркало (234 Кб)
Исходный код (C++) / зеркало (69 Кб)
Ссылки на версию 1.0.1 (25.06.2012):
x32+x64 / зеркало (234 Кб)
Исходный код (C++) / зеркало (69 Кб)
Последний раз редактировалось CaptainFlint Вт июн 26, 2012 00:45, всего редактировалось 2 раза.
Почему же, ё-моё, ты нигде не пишешь "ё"?
CaptainFlint
Спасибо.
Почему-то у меня плагин показывает уже удаленные программы. Галки про Show Hotfixes и Hidden Updates *не* стоят.
Вот такие
http://dl.dropbox.com/u/1296492/uninst/uninstbug.png
Windows Unistall их не показывает
http://dl.dropbox.com/u/1296492/uninst/uninst.png
TC 8, x64
Спасибо.
Почему-то у меня плагин показывает уже удаленные программы. Галки про Show Hotfixes и Hidden Updates *не* стоят.
Вот такие
http://dl.dropbox.com/u/1296492/uninst/uninstbug.png
Windows Unistall их не показывает
http://dl.dropbox.com/u/1296492/uninst/uninst.png
TC 8, x64
Последний раз редактировалось Mishail Сб июн 09, 2012 03:21, всего редактировалось 1 раз.
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Спасибо.
WinXP SP3 Rus TC 8.0.
Попробовал три программы удалить.
После удаления программ это никак не отображается, они не исчезают из списка и иконки не изменяют свой вид.
После обновления страницы одно из удалённых приложений пропало из списка, ещё два - остались (у них пропали только иконки).
Вышел/вошёл в плагин - не помогло.
В то же время в другой программе-удалялке эти приложения уже не отображались (то есть "помнил" о них только плагин).
После перезапуска Тотала приложения наконец исчезли из списка в плагине.
WinXP SP3 Rus TC 8.0.
Попробовал три программы удалить.
После удаления программ это никак не отображается, они не исчезают из списка и иконки не изменяют свой вид.
После обновления страницы одно из удалённых приложений пропало из списка, ещё два - остались (у них пропали только иконки).
Вышел/вошёл в плагин - не помогло.
В то же время в другой программе-удалялке эти приложения уже не отображались (то есть "помнил" о них только плагин).
После перезапуска Тотала приложения наконец исчезли из списка в плагине.
- CaptainFlint
- Сообщения: 6243
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Mishail
Скопируй эти записи как файлы и выложи куда-нибудь вместе с дампом указанных там веток реестра, чтобы я мог глянуть. Но вообще, алгоритм показа записей деинсталляции в самой Windows остаётся тайной за семью печатями, и не факт, что удастся разгадать точный критерий.
LonerD
Странно, у себя такого не наблюдал. Боюсь, что тут нужны эксперименты. Если что-то такое произойдёт снова, нужно проверить, остались ли в реестре соответствующие ключи. Если остались, то это та же проблема, что и выше — незнание точных критериев скрытия записи. Если исчезли, то запись однозначно должна исчезнуть из списка. Я тогда вставлю код логирования в плагин, чтобы можно было понять, что он видит и почему не очищает несуществующие элементы.
Скопируй эти записи как файлы и выложи куда-нибудь вместе с дампом указанных там веток реестра, чтобы я мог глянуть. Но вообще, алгоритм показа записей деинсталляции в самой Windows остаётся тайной за семью печатями, и не факт, что удастся разгадать точный критерий.
LonerD
Странно, у себя такого не наблюдал. Боюсь, что тут нужны эксперименты. Если что-то такое произойдёт снова, нужно проверить, остались ли в реестре соответствующие ключи. Если остались, то это та же проблема, что и выше — незнание точных критериев скрытия записи. Если исчезли, то запись однозначно должна исчезнуть из списка. Я тогда вставлю код логирования в плагин, чтобы можно было понять, что он видит и почему не очищает несуществующие элементы.
Почему же, ё-моё, ты нигде не пишешь "ё"?
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
CaptainFlint
Записи в реестре удаляются после удаления программ.
Значки (иконки) программ после удаления так и остаются висеть в списке.
В некоторых случаях после ручного обновления панели (cm_RereadSource) удалённые программы исчезают из списка.
В других случаях - остаются в списке, и даже не обновляется иконка. После того, как зайду-выйду из плагина - иконка изменится, символизируя, что программа удалена. Но только после перезагрузки Тотала запись об удалённой программе исчезнет.
Более того. Захожу в плагин, то-сё, выхожу из плагина. Удаляю какую-нибудь программу (штатным или виндовским или сторонним деинсталлятором), захожу опять в плагин - а удалённая программа висит в списке и продолжает висеть до перезагрузки Тотала.
Плагин попросту не перечитывает (не обновляет) состояние установленных программ.
А оно только такое и происходит.Если что-то такое произойдёт снова
Записи в реестре удаляются после удаления программ.
Значки (иконки) программ после удаления так и остаются висеть в списке.
В некоторых случаях после ручного обновления панели (cm_RereadSource) удалённые программы исчезают из списка.
В других случаях - остаются в списке, и даже не обновляется иконка. После того, как зайду-выйду из плагина - иконка изменится, символизируя, что программа удалена. Но только после перезагрузки Тотала запись об удалённой программе исчезнет.
Более того. Захожу в плагин, то-сё, выхожу из плагина. Удаляю какую-нибудь программу (штатным или виндовским или сторонним деинсталлятором), захожу опять в плагин - а удалённая программа висит в списке и продолжает висеть до перезагрузки Тотала.
Плагин попросту не перечитывает (не обновляет) состояние установленных программ.
- CaptainFlint
- Сообщения: 6243
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
CaptainFlint
Попробовал на нескольких программах.
Удаляются, после удаления остаются висеть записи в списке, которые исчезают после cm_RereadSource.
Может, стоит ещё добавить принудительное перечитывание панели после удаления каждой программы? Или плагин "не знает", что запущенный деинсталлятор уже отработал?
Попробовал на нескольких программах.
Удаляются, после удаления остаются висеть записи в списке, которые исчезают после cm_RereadSource.
Может, стоит ещё добавить принудительное перечитывание панели после удаления каждой программы? Или плагин "не знает", что запущенный деинсталлятор уже отработал?
- CaptainFlint
- Сообщения: 6243
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Думал об этом, но здесь есть много подводных камней. Когда я запустил деинсталлятор, я возвращаю управление Тоталу, чтобы он не оставался в подвисшем состоянии, пока деинсталлятор не завершится. Плагин мог бы ожидать завершения работы деинсталлятора в фоновом потоке, но представь, что ты запустил деинсталляцию (долгую), а сам в это время продолжаешь работать в Тотале. Уже ушёл из плагина, и, например, открыл какой-то архив. И тут деинсталлятор завершается, мой фоновый поток посылает в Тотал команду обновления панели, и тебя тут же выкидывает из архива, потому что именно такова реакция Тотала на эту команду. Или сбрасывает быстрый фильтр. Или вызывает обновление мега-тормозного сетевого диска, которого ты дожидался две минуты и буквально только что дождался…LonerD писал(а):Может, стоит ещё добавить принудительное перечитывание панели после удаления каждой программы? Или плагин "не знает", что запущенный деинсталлятор уже отработал?
Почему же, ё-моё, ты нигде не пишешь "ё"?
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Да, всё верно. И старенький деинсталлятор тоже не обновлял список программ. Тогда, думаю, можно остановиться на нынешнем результате.
Что если после деинсталляции сделать проверку - открыт ли у пользователя на панели плагин? Если открыт - перечитать содержимое списка, а если не открыт - то ничего не делать (раз пользователь перешёл в другой каталог, то всё-равно список установленных программ автоматом перечитается при следующем открытии плагина).
Полностью возвращает? Или частично в памяти сидит и "наблюдает за процессом"?Когда я запустил деинсталлятор, я возвращаю управление Тоталу, чтобы он не оставался в подвисшем состоянии, пока деинсталлятор не завершится.
Что если после деинсталляции сделать проверку - открыт ли у пользователя на панели плагин? Если открыт - перечитать содержимое списка, а если не открыт - то ничего не делать (раз пользователь перешёл в другой каталог, то всё-равно список установленных программ автоматом перечитается при следующем открытии плагина).
- CaptainFlint
- Сообщения: 6243
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Сейчас — полностью. В памяти он, разумеется, продолжает сидеть, как любой другой загруженный и инициализированный плагин, но это сидение пассивное.LonerD писал(а):Полностью возвращает? Или частично в памяти сидит и "наблюдает за процессом"?
Это недостаточное условие. Надо ещё проверить, не активна ли сейчас быстрая фильтрация, т.к. перечитывание панели её убьёт, причём нормального способа это проверить не существует (разве что получить из Тотала количество элементов в списке и сравнить с реальным количеством, да и то, может так получиться, что все элементы подошли под условие фильтра). Кроме того, определить принадлежность панели плагину я смогу только по имени в заголовке или около командной строки. Но пользователь мог и переименовать плагин. Например, если у него разные команды и кнопки работали со старым Uninstaller'ом, он может его удалить, поставить Uninstaller64, а имя виртуальной папки дать Uninstaller, чтобы все прежние скрипты работали без модификации.LonerD писал(а):Что если после деинсталляции сделать проверку - открыт ли у пользователя на панели плагин? Если открыт - перечитать содержимое списка, а если не открыт - то ничего не делать (раз пользователь перешёл в другой каталог, то всё-равно список установленных программ автоматом перечитается при следующем открытии плагина).
Я уж не говорю, что подобные действия являются серьёзным отклонением от стандартного API, и это может привести к неработоспособности плагина в будущем. Гислер обеспечивает совместимость плагинов с Тоталом в рамках предусмотренного набора функциональности, а если плагин лезет за его пределы, то существенно повышается риск огрести проблем. И хорошо, если просто автообновление перестанет работать, а то ведь может случиться, как, например, с плагином AceHelper, в котором невиннейшая система автообновления спсика при переходе на Windows Vista стала зацикливаться и сделала использование плагина невозможным.
Почему же, ё-моё, ты нигде не пишешь "ё"?
- CaptainFlint
- Сообщения: 6243
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Mishail
Спасибо. Как я и боялся, ничем особенным не выделяется.
Впрочем, есть одна идейка… Проверь, пожалуйста, существует ли у тебя хотя бы один из следующих ключей:
Если да, то тоже хотелось бы дамп глянуть.
Спасибо. Как я и боялся, ничем особенным не выделяется.
Впрочем, есть одна идейка… Проверь, пожалуйста, существует ли у тебя хотя бы один из следующих ключей:
Код: Выделить всё
HKEY_CLASSES_ROOT\Installer\Products\F6071111A6667304777702328267D401
HKEY_CLASSES_ROOT\Wow6432Node\Installer\Products\F6071111A6667304777702328267D401
HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\F6071111A6667304777702328267D401Почему же, ё-моё, ты нигде не пишешь "ё"?
Потестим! Ещё бы кто взялся за современные аналоги Services и Task manager'а...
cogito ergo sum
http://www.yakimchuk.ru/questions.htm - Как правильно задавать вопросы
http://www.yakimchuk.ru/questions.htm - Как правильно задавать вопросы
CaptainFlint
Нет, таких ключей нет, но есть
Дамп тут _ttps://dl.dropbox.com/u/1296492/uninst/reg2.reg
Нет, таких ключей нет, но есть
Код: Выделить всё
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-21-1374901071-2721160156-2645670812-500\Products\F6071111A6667304777702328267D401]- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Много за что можно взятьсяЕщё бы кто взялся за современные аналоги Services и Task manager'а.
Из wfx - хотелось бы в первую очередь увидеть обновлённые и 64-битные версии плагинов AceHelper, Device Manager, Services (
А в целом - из используемых лично мною плагинов ещё 35 штук (из более сотни) не имеют 64-битных аналогов (из них около 20 штук - не позволяют пока мне перейти на 64-битный Тотал)
Последний раз редактировалось LonerD Пн июн 11, 2012 19:13, всего редактировалось 1 раз.