Page 28 of 29

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Tue 17 Oct, 2017 11:50
by Wave

Latest post of the previous page:

DrKnS wrote:
Sun 27 Aug, 2017 20:29
Возможность есть. Но увы, за 10 лет, прошедших с момента написания этого текста, никто так и не сделал.
Блин, жалко! Только из-за этого приходится переходить на FAR64 — и обнаруживаю, что это довольно марудная штука. Нет некоторых привычных плагинов и т.п., к тому же раньше была универсальная сборка на все случаи жизни, а теперь придётся две сборки держать, для x64 и для x86 машин.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 24 Nov, 2017 14:09
by Taciturn
Почему EMenu отказывается показывать меню для файлов из разных папок? Explorer без малейших проблем это делает.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 24 Nov, 2017 16:40
by Wave
Taciturn wrote:
Fri 24 Nov, 2017 14:09
Почему EMenu отказывается показывать меню для файлов из разных папок? Explorer без малейших проблем это делает.
Чисто случайно: не запускаете ли вы 32x FAR на 64x Windows?

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 24 Nov, 2017 21:25
by Dec
Taciturn, меню для файлов из разных папок - это меню, которое вызывается на результатах поиска?

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Sun 26 Nov, 2017 18:45
by Taciturn
Wave wrote:
Fri 24 Nov, 2017 16:40
Чисто случайно: не запускаете ли вы 32x FAR на 64x Windows?
Нет, 64 на 64.
Dec wrote:
Fri 24 Nov, 2017 21:25
Taciturn, меню для файлов из разных папок - это меню, которое вызывается на результатах поиска?
Да. В Explorer всё Ok, в Far, из временной панели, плагин пишет что это невозможно.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Mon 27 Nov, 2017 09:38
by Dec
Taciturn wrote:
Sun 26 Nov, 2017 18:45
В Explorer всё Ok
Предполагаю следующее. Вся работа с файлами в Explorer происходит через namespace extensions, то бишь через работу с IShellFolder. В ситуации, когда в Explorer происходит вызов контекстного меню, то происходит вызов IShellFolder.GetUIObjectOf(IContextMenu). IShellFolder определяет одну конкретную физическую или виртуальную директорию, и соответственно невозможно стандартными путями получить контекстное меню для нескольких файлов, расположенных в разных директориях. В случае поиска в Explorer создается виртуальная папка с содержимым поиска, у этой папки есть свой личный IShellFolder, у которой и запрашивается контекстное меню. Т.е. контекстное меню на результатах поиска это не меню физической директории, а меню виртуальной папки. Не думаю, что в EMenu можно реализовать обращение к IShellFolder такой виртуальной папки. Но теоретически можно эмулировать поведение Explorer и самостоятельно строить такое меню. Относительно геморно, но реализуемо.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Mon 27 Nov, 2017 13:39
by HaRT
Dec wrote:
Mon 27 Nov, 2017 09:38
В случае поиска в Explorer создается виртуальная папка с содержимым поиска, у этой папки есть свой личный IShellFolder, у которой и запрашивается контекстное меню.
А что мешает и EMenu создавать виртуальную папку с выделенными элементами в момент вызова?

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Mon 27 Nov, 2017 21:02
by Dec
HaRT wrote:
Mon 27 Nov, 2017 13:39
А что мешает и EMenu создавать виртуальную папку с выделенными элементами в момент вызова?
Вероятно, отсутствие документированного способа сделать это.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Thu 23 Aug, 2018 11:53
by Xhronos
Есть пара вопросов.
1. Почему в каталоге \Windows\Fonts\ EMenu сообщает что не удалось показать меню?
2. Почему при попытке вызвать контекстное меню в архиве Far оказывается скорее мертв чем жив? Вопрос снят. После обновления Far до 5261 выдаётся предупреждение как в п. 1.

EMenu: вызов стандартного меню портит панели

Posted: Mon 24 Dec, 2018 22:32
by dest
При вызове правой кнопкой мыши (или кнопкой на клавиатуре, её заменяющую) системного меню Windows панель, нижний ряд кнопок сдвигаются вверх (визуально) и замусоривается надписями "Marker : e0 14" от 1-2+ штук. Верхняя ограничительная полоса панели из псевдографики перекрывается сдвинутой картинкой, визуально позиции файлов перестают соответствовать реальному положению файлов. Если кликнуть по какому-либо файлу, оказывается что под нарисованным другой файл (находящийся строкой выше). Удалось воспроизвести проблему на файлах .jpg, и проявляется далеко не на всех и не всегда. Установить, что именно приводит к багу, не удалось.
Глюк появляется в связке с плагином ConEmu. Надпись у командной строки может быть "Marker : e1 22", "Marker : ec 15", "Marker : ee 12", "Marker : e1 4218", "Marker : e1 2870", "Marker : e1 4182", "Marker : e1 2582", "Marker : e1 24582", "Marker : e1 2904" и другие.
Локализованный плагин с багом - стандартный EMenu.

EMenu: вызов стандартного меню портит панели

Posted: Mon 24 Dec, 2018 22:58
by HaRT
dest wrote:
Mon 24 Dec, 2018 22:32
Локализованный плагин с багом - стандартный EMenu.
Плагин не виноват, ConEmu ни при чём. Это одно из установленных у вас в системе расширений контекстного меню (XnView или ему подобное) гадит в консоль. Можете, например, с помощью Sysinternals Autoruns выявить это расширение и пожаловаться его авторам. И если это не XnView, то не забудьте, пожалуйста, тут отписаться, что за программа.

03:09 MSK
Виновник найден:
dest wrote:
Tue 25 Dec, 2018 00:46
SageThumbs - он обрабатывает картинки

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Tue 25 Dec, 2018 00:46
by dest
HaRT wrote:
Mon 24 Dec, 2018 22:58
...ConEmu ни при чём. Это одно из установленных у вас в системе расширений контекстного меню...
По поводу контекстного меню - переименовал в реестре сначала обработчики для всех файлов - глюк "выжил", затем переименовал вообще реакцию на все файлы "*" - глюк выжил. Для .jpg/jpegfile никаких дополнительных обработчиков не обнаружил. Посмотрел в процесс мониторе к чему обращается система при ПКМ - переименовал SendTo - винда оказалась хитрее меня, смотрела ссылки в переименованной директории (! честно говоря, в этот момент я подохренел, хоть и видал ну очень много - какое-то око саурона). Далее вынес SendTo на другой диск - в этот раз винда обломилась. Глюк продолжал жить. Снова посмотрел в процесс монитор - масса вызовов разных библиотек, от TortoiseGit, PHP Composer и прочие... но глаза вцепились в SageThumbs - он обрабатывает картинки (странно, что глюки проявляются только на jpg, хотя может недостаточно кликал?). В настройках SageThumbs отключил интеграцию в контекстное меню. Поклацал пару минут по жпегам - глюка нет. Включил интеграцию - глюк есть. Выключил снова - нет. Эксперимент можно сказать завершённым.
Хотя может у кого ещё какие идеи? А пока пойду напишу автору о глюке.

ЗЫ: ConEmu я исключил в самом начале, сузив всё до первичной реакции на ПКМ (оказался единственный плагин) и начав с него, хотя именно на обработчики самого меню тоже следовало обратить бы пристальное внимание... но то, что проблема проявлялась только в фаре и более нигде и никогда, заставило думать на плагин к фару.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 07 Jun, 2019 07:17
by lvm
Открыл для себя этот плагин, есть вопросы:

Настройка "menu position" не оказывает никакого эффекта, меню прыгает по экрану, в центре открываться не хочет. Я что-то делаю не так?

Иногда меню получается скроллируемым, хотя места на экране более чем достаточно, чтобы показать его полностью, например, меню в 27 строк - 23 значащих строки и разделителей и 4 - рамки в окне высотой 36. Кмк оно обрезается под старые добрые досовские CGAшные 25.

Ну и самое главное - как его вызвать с клавиатуры так, чтобы он вызвался для файла под обычным клавиатурным курсором? Создание макроса через ^. привело к тому, что меню с клавы вызывается, да, но для файла под мышиным курсором.

3.0.0 (build 65)

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 07 Jun, 2019 09:10
by DrKnS
Дистрибутивные настройки и макросы отображают меню в центре экрана при вызове клавиатурой и в позиции мышиного курсора при вызове мышью.
Вызов "под обычным клавиатурным курсором" не поддерживается, т.к. в общем случае это нетривиальная задача.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 07 Jun, 2019 12:28
by HaRT
lvm wrote:
Fri 07 Jun, 2019 07:17
Иногда меню получается скроллируемым, хотя места на экране более чем достаточно
Я такого не наблюдал. Можете найти стабильные шаги воспроизведения?

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 07 Jun, 2019 13:05
by lvm
DrKnS wrote:
Fri 07 Jun, 2019 09:10
Дистрибутивные настройки и макросы отображают меню в центре экрана при вызове клавиатурой и в позиции мышиного курсора при вызове мышью.
Я правильно понимаю, что в плагине есть настройка центр/мышь, но мы ее специально игнорируем, но настройку оставляем, чтобы всех запутать?
Вызов "под обычным клавиатурным курсором" не поддерживается, т.к. в общем случае это нетривиальная задача.
А что там такого нетривиального? В худшем случае, это может быть не файл на файловой системе - ну и что? Правой мышью я тоже могу куда угодно кликнуть, и получаю при этом вполне ожидаемое "can't show menu"
HaRT wrote:
Fri 07 Jun, 2019 12:28
Я такого не наблюдал. Можете найти стабильные шаги воспроизведения?
Это не 25 символов, похоже, виновата попытка открыть окно в месте клика (несмотря на то, что включено открытие в центре): если кликнуть правой мышью по файлу в центре окна, и меню будет выше, чем половина окна, то оно не влезет, ужмется и станет скроллируемым.

EMenu: Explorer Context Menu — Контекстное меню Проводника

Posted: Fri 07 Jun, 2019 13:11
by HaRT
lvm wrote:
Fri 07 Jun, 2019 13:05
есть настройка центр/мышь, но мы ее специально игнорируем
Нет, просто эта настройка относится только к текстовому меню. (Я только что проверил — у меня работает ожидаемо.) Графическое меню открывается всегда возле мыши.
lvm wrote:
Fri 07 Jun, 2019 13:05
А что там такого нетривиального? В худшем случае, это может быть не файл
Я так понимаю, что имелась в виду какая-то сложность с выяснением позиции. Впрочем, какая именно, я тоже что-то не соображу.