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 

Uninstaller64
Goto page 1, 2, 3, 4  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
CaptainFlint



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

Post (Separately) Posted: Sat Jun 09, 2012 01:18    Post subject: Uninstaller64 Reply with quote

Представляю на суд общественности новый плагин Uninstaller64, разработанный как современная альтернатива старенькому UnInstaller'у. Основное отличие, ради чего плагин, собственно, и задумывался — поддержка 64-битных систем, причём не только в виде наличия 64-битной версии плагина как таковой, но и в виде отображения в списке как 32-битных, так и 64-битных установленных программ. Разумеется, не был обойдён стороной и Юникод, без поддержки которого уже было бы просто стыдно выкладывать плагин; нашлось местечко и для других, более мелких приятностей типа информационных полей, возможности хранения настроек в разных каталогах и т.п. Полный список отличий можно найти в истории изменений, опубликованной как в ReadMe-файлах в архиве с плагином, так и на странице плагина.

Ссылки на версию 1.0.1 (25.06.2012):
x32+x64 / зеркало (234 Кб)
Исходный код (C++) / зеркало (69 Кб)
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?


Last edited by CaptainFlint on Tue Jun 26, 2012 00:45; edited 2 times in total
Back to top
View user's profile Send private message
Mishail



Joined: 15 Dec 2004
Posts: 4
Location: Владивосток

Post (Separately) Posted: Sat Jun 09, 2012 03:02    Post subject: Reply with quote

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


Last edited by Mishail on Sat Jun 09, 2012 03:21; edited 1 time in total
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1096
Location: Донецк

Post (Separately) Posted: Sat Jun 09, 2012 03:19    Post subject: Reply with quote

Спасибо.
WinXP SP3 Rus TC 8.0.
Попробовал три программы удалить.
После удаления программ это никак не отображается, они не исчезают из списка и иконки не изменяют свой вид.
После обновления страницы одно из удалённых приложений пропало из списка, ещё два - остались (у них пропали только иконки).
Вышел/вошёл в плагин - не помогло.
В то же время в другой программе-удалялке эти приложения уже не отображались (то есть "помнил" о них только плагин).
После перезапуска Тотала приложения наконец исчезли из списка в плагине.
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Sat Jun 09, 2012 10:41    Post subject: Reply with quote

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


LonerD
Странно, у себя такого не наблюдал. Боюсь, что тут нужны эксперименты. Если что-то такое произойдёт снова, нужно проверить, остались ли в реестре соответствующие ключи. Если остались, то это та же проблема, что и выше — незнание точных критериев скрытия записи. Если исчезли, то запись однозначно должна исчезнуть из списка. Я тогда вставлю код логирования в плагин, чтобы можно было понять, что он видит и почему не очищает несуществующие элементы.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1096
Location: Донецк

Post (Separately) Posted: Sat Jun 09, 2012 13:38    Post subject: Reply with quote

CaptainFlint
Quote:
Если что-то такое произойдёт снова

А оно только такое и происходит.
Записи в реестре удаляются после удаления программ.
Значки (иконки) программ после удаления так и остаются висеть в списке.
В некоторых случаях после ручного обновления панели (cm_RereadSource) удалённые программы исчезают из списка.
В других случаях - остаются в списке, и даже не обновляется иконка. После того, как зайду-выйду из плагина - иконка изменится, символизируя, что программа удалена. Но только после перезагрузки Тотала запись об удалённой программе исчезнет.

Более того. Захожу в плагин, то-сё, выхожу из плагина. Удаляю какую-нибудь программу (штатным или виндовским или сторонним деинсталлятором), захожу опять в плагин - а удалённая программа висит в списке и продолжает висеть до перезагрузки Тотала.

Плагин попросту не перечитывает (не обновляет) состояние установленных программ.
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Sat Jun 09, 2012 16:24    Post subject: Reply with quote

LonerD
Да, уже воспроизвёл. Проверь этот фикс:
http://flint-inc.ru/Temp/uninstaller64_1.0.1.rar
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1096
Location: Донецк

Post (Separately) Posted: Sat Jun 09, 2012 16:37    Post subject: Reply with quote

CaptainFlint
Попробовал на нескольких программах.
Удаляются, после удаления остаются висеть записи в списке, которые исчезают после cm_RereadSource.
Может, стоит ещё добавить принудительное перечитывание панели после удаления каждой программы? Или плагин "не знает", что запущенный деинсталлятор уже отработал?
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Sat Jun 09, 2012 17:01    Post subject: Reply with quote

LonerD wrote:
Может, стоит ещё добавить принудительное перечитывание панели после удаления каждой программы? Или плагин "не знает", что запущенный деинсталлятор уже отработал?

Думал об этом, но здесь есть много подводных камней. Когда я запустил деинсталлятор, я возвращаю управление Тоталу, чтобы он не оставался в подвисшем состоянии, пока деинсталлятор не завершится. Плагин мог бы ожидать завершения работы деинсталлятора в фоновом потоке, но представь, что ты запустил деинсталляцию (долгую), а сам в это время продолжаешь работать в Тотале. Уже ушёл из плагина, и, например, открыл какой-то архив. И тут деинсталлятор завершается, мой фоновый поток посылает в Тотал команду обновления панели, и тебя тут же выкидывает из архива, потому что именно такова реакция Тотала на эту команду. Или сбрасывает быстрый фильтр. Или вызывает обновление мега-тормозного сетевого диска, которого ты дожидался две минуты и буквально только что дождался…
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1096
Location: Донецк

Post (Separately) Posted: Sat Jun 09, 2012 17:22    Post subject: Reply with quote

Да, всё верно. И старенький деинсталлятор тоже не обновлял список программ. Тогда, думаю, можно остановиться на нынешнем результате.

Quote:
Когда я запустил деинсталлятор, я возвращаю управление Тоталу, чтобы он не оставался в подвисшем состоянии, пока деинсталлятор не завершится.

Полностью возвращает? Или частично в памяти сидит и "наблюдает за процессом"?
Что если после деинсталляции сделать проверку - открыт ли у пользователя на панели плагин? Если открыт - перечитать содержимое списка, а если не открыт - то ничего не делать (раз пользователь перешёл в другой каталог, то всё-равно список установленных программ автоматом перечитается при следующем открытии плагина).
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Sat Jun 09, 2012 18:14    Post subject: Reply with quote

LonerD wrote:
Полностью возвращает? Или частично в памяти сидит и "наблюдает за процессом"?

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

LonerD wrote:
Что если после деинсталляции сделать проверку - открыт ли у пользователя на панели плагин? Если открыт - перечитать содержимое списка, а если не открыт - то ничего не делать (раз пользователь перешёл в другой каталог, то всё-равно список установленных программ автоматом перечитается при следующем открытии плагина).

Это недостаточное условие. Надо ещё проверить, не активна ли сейчас быстрая фильтрация, т.к. перечитывание панели её убьёт, причём нормального способа это проверить не существует (разве что получить из Тотала количество элементов в списке и сравнить с реальным количеством, да и то, может так получиться, что все элементы подошли под условие фильтра). Кроме того, определить принадлежность панели плагину я смогу только по имени в заголовке или около командной строки. Но пользователь мог и переименовать плагин. Например, если у него разные команды и кнопки работали со старым Uninstaller'ом, он может его удалить, поставить Uninstaller64, а имя виртуальной папки дать Uninstaller, чтобы все прежние скрипты работали без модификации.

Я уж не говорю, что подобные действия являются серьёзным отклонением от стандартного API, и это может привести к неработоспособности плагина в будущем. Гислер обеспечивает совместимость плагинов с Тоталом в рамках предусмотренного набора функциональности, а если плагин лезет за его пределы, то существенно повышается риск огрести проблем. И хорошо, если просто автообновление перестанет работать, а то ведь может случиться, как, например, с плагином AceHelper, в котором невиннейшая система автообновления спсика при переходе на Windows Vista стала зацикливаться и сделала использование плагина невозможным.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Mishail



Joined: 15 Dec 2004
Posts: 4
Location: Владивосток

Post (Separately) Posted: Sat Jun 09, 2012 23:39    Post subject: Reply with quote

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

_ttps://dl.dropbox.com/u/1296492/uninst/JavaFX%202.0.2.W008C.htm
_ttps://dl.dropbox.com/u/1296492/uninst/re.reg
Back to top
View user's profile Send private message
CaptainFlint



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

Post (Separately) Posted: Sun Jun 10, 2012 00:48    Post subject: Reply with quote

Mishail
Спасибо. Как я и боялся, ничем особенным не выделяется. Sad

Впрочем, есть одна идейка… Проверь, пожалуйста, существует ли у тебя хотя бы один из следующих ключей:
Code:
HKEY_CLASSES_ROOT\Installer\Products\F6071111A6667304777702328267D401
HKEY_CLASSES_ROOT\Wow6432Node\Installer\Products\F6071111A6667304777702328267D401
HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\F6071111A6667304777702328267D401

Если да, то тоже хотелось бы дамп глянуть.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
flm



Joined: 09 Dec 2007
Posts: 467

Post (Separately) Posted: Sun Jun 10, 2012 00:48    Post subject: Reply with quote

Потестим! Ещё бы кто взялся за современные аналоги Services и Task manager'а...
_________________
cogito ergo sum
http://www.yakimchuk.ru/questions.htm - Как правильно задавать вопросы
Back to top
View user's profile Send private message
Mishail



Joined: 15 Dec 2004
Posts: 4
Location: Владивосток

Post (Separately) Posted: Sun Jun 10, 2012 02:47    Post subject: Reply with quote

CaptainFlint
Нет, таких ключей нет, но есть
Code:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-21-1374901071-2721160156-2645670812-500\Products\F6071111A6667304777702328267D401]


Дамп тут _ttps://dl.dropbox.com/u/1296492/uninst/reg2.reg
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1096
Location: Донецк

Post (Separately) Posted: Mon Jun 11, 2012 04:49    Post subject: Reply with quote

Quote:
Ещё бы кто взялся за современные аналоги Services и Task manager'а.

Много за что можно взяться Smile
Из wfx - хотелось бы в первую очередь увидеть обновлённые и 64-битные версии плагинов AceHelper, Device Manager, Services (исходники вроде доступны ошибся, недоступны), StartupGuard, Wipe.
А в целом - из используемых лично мною плагинов ещё 35 штук (из более сотни) не имеют 64-битных аналогов (из них около 20 штук - не позволяют пока мне перейти на 64-битный Тотал)


Last edited by LonerD on Mon Jun 11, 2012 19:13; edited 1 time in total
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 1, 2, 3, 4  Next
Page 1 of 4

 
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