TC4Shell - использование WCX плагинов в Проводнике

Обсуждение любых программ, не имеющих отношения к Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

У меня для ситуации, когда источник каталог, все работает корректно. Проверь, установлены ли ассоциации (не просто выбраны плагины, а именно ассоциации).

А вот ситуация, когда источник архив, мне пока вообще не ясна. При отладке в дебагере процесс wcsript.exe просто закрывается без каких либо ошибок, все время в разных местах. Пока думаю.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dec писал(а):Проверь, установлены ли ассоциации
Ну, а как они могут быть не установлены, если я вхожу в архивы?
После запуска TC2ShellAssocSetup.exe все галки там же, где и были при установке. Правда их там почему-то значительно меньше в списке.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

Обновил TC4Shell, проверь.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Открытие exe по-прежнему в новом окне.
Копирование из папки починилось. Из архивов же пока так себе. Проверил какой-то zip - сработало, потом взял другие zip-ы, ничего не добавилось. Надо бы несколько архивов подсобрать для тестов.
И ещё почему-то окно ассоциаций не появилось, и установщик запросил перезапуск системы.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

Flasher писал(а):Открытие exe по-прежнему в новом окне.
Это не изменится.
Flasher писал(а):Из архивов же пока так себе.
Будет что то более конкретное, пиши, буду разбираться.
Flasher писал(а):установщик запросил перезапуск системы.
Это обозначает, что dll, которые нужно было обновить, были загружены системой, и установщик не смог их обновить. Поэтому единственный вариант - перезагрузка.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dec писал(а):Это не изменится.
По причине?
Dec писал(а):Поэтому единственный вариант - перезагрузка.
А почему единсвенный? Я просто сперва не выбрал завершение explorer. С предыдущей версией выбрал и такого сообщения не было. А сейчас при повторной попытке установить только это окно и выводится вместо установки. Правильней было бы дать возможность переустановить без explorer.

И почему не выползло окно ассоциаций, а TC2ShellAssocSetup.exe даёт урезанный список?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

Решение о перезагрузке принимается кодом InnoSetup, к которому я не имею отношения. Если InnoSetup не может обновить файл, то он пытается найти процессы, которые его блокируют, и если если такие найдены, то предлагает их завершить. Если ты отказываешься их завершать, или не найдены не все процессы, то InnoSetup не может обновить файл, и единственный корректный вариант - перезагрузка.

TC2ShellAssocSetup.exe уже давно не входит в дистрибутив, его код перекочевал в dll файлы. И пользоваться им я очень не рекомендую, поскольку его код и метод установки не согласован с текущим методом в dll. Я бы даже бы рекомендовал сделать uninstall, удаление остатков в Program Files ручками, удаление веток реестра в CurrentUser и LocalMachine, и чистый install.
Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

Добавил поддержку некоторых флагов, передаваемых функцией CopyHere:

FOF_SILENT (4)
FOF_RENAMEONCOLLISION (8)
FOF_NOCONFIRMATION (16)
FOF_NOERRORUI (1024)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dec писал(а):его код перекочевал в dll файлы
И как с ними взаимодействовать? Как вызвать этот диалог?
Dec писал(а):Добавил поддержку некоторых флагов, передаваемых функцией CopyHere
Вот блин. Так у меня там в сумме и другие имеются. Я думал, что это всё по умолчанию... Посмотрел, а MoveHere-то вообще как CopyHere, файлы в поддерживаемом правку источнике остаются. :( А он-то мне как раз и нужен.

При попытке скопировать файлы в этот архив выпадает окно с ошибкой:
Ошибка 0x800401F0: Не был произведен вызов CoInitialize.
И на первый вопрос предыдущего поста ответ бы получить.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

Flasher писал(а):И как с ними взаимодействовать? Как вызвать этот диалог?
Вариантов 2.
1) Пуск\TC4Shell\File associations
2) ControlsPanel\TC4Shell plugins\Кнопка на панели или пункт в контекстном меню.
Flasher писал(а):Я думал, что это всё по умолчанию...
Each Shell namespace must provide its own implementation of these flags, and each namespace can choose to ignore some or even all of these flags.
Flasher писал(а):При попытке скопировать файлы в этот архив выпадает окно с ошибкой
Не удалось воспроизвести.
Flasher писал(а):И на первый вопрос предыдущего поста ответ бы получить.
Я вообще не знаю, как ты добился того, что у тебя нет проблем с установкой ассоциаций с exe. Можешь показать скриншот контекстного меню после установки ассоциации?
Последний раз редактировалось Dec Вт апр 11, 2017 21:09, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dec писал(а):Вариантов 2.
Понял. Спасибо.
Dec писал(а):Не удалось воспроизвести.
У меня Win7 x86. Вот.
Dec писал(а):Можешь показать скриншот контекстного меню после установки ассоциации?
Изображение

Прошу добавить MoveHere и другие флаги.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

Flasher писал(а):У меня Win7 x86.
Буду тестировать.
Flasher писал(а):Изображение
Судя по наличию команды Открыть как папку ассоциация НЕ была установлена. Эта команда есть у любого файла. Можно проверить по другому. Если в диалоге свойств exe файла после открытия на вкладке Навигация стоит галка Открывать EXE файлы как папки - ассоциация установлена.
Flasher писал(а):Прошу добавить MoveHere и другие флаги.
Насчет MoveHere я подумаю. А какие другие флаги интересуют?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dec писал(а):Судя по наличию команды Открыть как папку ассоциация НЕ была установлена.
Т.е. открытие exe как архива к этому не относится?
Dec писал(а):Навигация стоит галка Открывать EXE файлы как папки - ассоциация установлена.
А... Не стояло. Поставил, стало показывать, что "указанный путь не существует".
А как отталкиваться от:
Dec писал(а):Это разблокирует возможность установки ассоциацией с exe файлами.
Ключ я создал. А дальше?
Dec писал(а):А какие другие флаги интересуют?
256, 512, 4096, 8192.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dec
Сообщения: 466
Зарегистрирован: Чт сен 07, 2006 18:56

Сообщение Dec »

Flasher писал(а):Т.е. открытие exe как архива к этому не относится?
Как я писал ранее, TC4Shell умеет открывать ЛЮБОЙ файл как архив (точнее умеет пытаться открывать). Команда Открыть как папку для этого и служит.
Flasher писал(а):Поставил, стало показывать, что "указанный путь не существует".
Вот об этой проблеме с запуском exe файлов после установки ассоциаций я и говорил ранее.
Flasher писал(а):Ключ я создал. А дальше?
Не ясен вопрос. Ключ просто разрешает установку ассоциаций с exe. По умолчанию он отключен, что бы не возникало проблем с запуском exe файлов.
Flasher писал(а):А какие другие флаги интересуют?
256, 512, 4096, 8192.
256: Display a progress dialog box but do not show the file names.
В случае скриптов прогрес не показывается вообще.
512: Do not confirm the creation of a new directory if the operation requires one to be created.
TC4Shell никогда не спрашивает о создании новой директории.
4096: Only operate in the local directory. Do not operate recursively into subdirectories.
Какой смысл ты вкладываешь в этот флаг?
8192: Do not copy connected files as a group. Only copy the specified files.
TC4Shell никогда не копирует connected files as a group.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Насчёт exe ясно. Поковыряю реестр ещё.
Dec писал(а):В случае скриптов прогрес не показывается вообще.
Если получатель - папка, то отображается. Ждём секунды 3 перед появлением прогресса. Играет роль объём и число объектов в архиве. А вот если получатель - архив, то прогресса нет. Но я надеялся, что в случае TC4Shell это можно как-то обойти.
Dec писал(а):TC4Shell никогда не спрашивает о создании новой директории.
ОК. 512 не надо.
Dec писал(а):Какой смысл ты вкладываешь в этот флаг?
После того как я его добавил в этот скрипт, у человека исчезла проблема включения иерархии дисков. Я так и не понял, почему без флага возникал такой глюк.
Dec писал(а):TC4Shell никогда не копирует connected files as a group.
Речь про web-связку. Т.е. с этим проблем нет?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить