Форумы


Comfort Software :: Форумы :: Обсуждение возможностей
<< Предыдущая тема | Следующая тема >>   

как изменить имя команды в контекстном меню

Автор Добавил
leopoldus
Fri Nov 05 2010, 04:03PM
ID пользователя #170
Зарегистрирован: Sun Aug 31 2008, 06:31AM
Сообщений: 56
После инсталляции Comfort Keys в Windows XP или Windows 7 в контекстном меню ко всем файлам и папкам появляется новый пункт: "Назначить клавишу быстрого вызова..." (причем прикольно, что пункт на русском языке даже в том случае, если ось английская).
А может ли пользователь как-то изменить название этого пункта контекстного меню на другое, допустим, на английское? А в идеале приделать еще и горячую клавишу (букву-ускоритель) для быстрого выбора этой команды с клавиатуры?
Хотел это сделать, вручную поправив ключ в системном реестре, в разделе HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers, но там вместо человеческого текста оказалась непонятная двоичная сигнатура {6B54FAD7-7ACD-4156-888D-118547A98218}, с этим я сам не справлюсь, тут надо быть программером...
Наверх
Comfort
Thu Nov 11 2010, 06:24AM


Зарегистрирован: Wed Sep 19 2007, 03:42PM
Сообщений: 617
А может ли пользователь как-то изменить название этого пункта контекстного меню на другое, допустим, на английское?

Установите в программе язык - английский.


Have a nice day
Наверх
leopoldus
Thu Nov 11 2010, 02:53PM
ID пользователя #170
Зарегистрирован: Sun Aug 31 2008, 06:31AM
Сообщений: 56
Comfort написал(а) ...

А может ли пользователь как-то изменить название этого пункта контекстного меню на другое, допустим, на английское?

Установите в программе язык - английский.


Спасибо, это хороший совет но в моем случае он не работает. В контекстном меню уже есть команда, точнее, подменю P&ath с жестко заданным акселератором в виде буквы A, при нажатии на клавишу A после открытия контекстного меню фокус сразу прыгает на эту строку и даже если жать на клавишу A еще раз, фокус все равно оттуда не уходит.

И в любом случае это был бы workaround: вместо решения проблемы как таковой -трюк для ее нестандартного обхода. IMHO смену языка интерфейса всей программы ради изменения имени команды в контекстном меню нельзя считать точным решением.

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

[ Редактирование Fri Nov 12 2010, 04:49AM ]
Наверх
Comfort
Fri Nov 12 2010, 08:09AM


Зарегистрирован: Wed Sep 19 2007, 03:42PM
Сообщений: 617
Какой же это "workaround" и "трюк"? Программа общается с вами на том языке, который вы выбрали.

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

Мы говорим о контекстном меню, встроенном в Windows? Интересно было бы посмотреть на это большинство. Я не знаю ни одной.

Ладно. Вот настоящий "workaround": Вы можете поменять любой текст, включая акселераторы, если создадите свой файл языка. Файлы переводов лежат в подкаталоге Lang. Более подробно об этом написано здесь: http://ru.comfort-software.com/localization.html

Have a nice day
Наверх
Comfort
Fri Nov 12 2010, 08:11AM


Зарегистрирован: Wed Sep 19 2007, 03:42PM
Сообщений: 617
А, не. Извиняюсь. Этот фокус не пройдет. Поменять текст в контекстном меню Windows не получится.

Have a nice day
Наверх
leopoldus
Fri Nov 12 2010, 09:56AM
ID пользователя #170
Зарегистрирован: Sun Aug 31 2008, 06:31AM
Сообщений: 56
Comfort написал(а) ...

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

Мы говорим о контекстном меню, встроенном в Windows? Интересно было бы посмотреть на это большинство. Я не знаю ни одной.

Возможно, что насчет "большинство программ" я погорячился, но что многие позволяют изменить имя команды (или при том же имени изменить букву-акселератор) - это точно. Обычно это делается не через GUI самой программы (впрочем, такие мне тоже попадались, но с ходу не могу припомнить), а через настройки контекстного меню Windows: Control Panel -> Folder Options -> File Types -> Advanced -> Edit File Type -> Edit Action (см картинку внизу).
То же самое можно сделать напрямую ручным редактированием системного реестра: ветка HKEY_CLASSES_ROOT\*\Shell для команд контекстного меню ко всем типам файлов ветка соответствующего типа файлов для команд, специфических именно для данного типа файлов, например, HKEY_CLASSES_ROOT\MyExt\shell

Правда Comfort Keys, как и некоторые другие программы, прописывает свою команду в другой ветке системного реестра: [HKEY_CLASSES_ROOT\*\shellex].

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



[ Редактирование Fri Nov 12 2010, 11:02AM ]
Наверх
Comfort
Fri Nov 12 2010, 10:13AM


Зарегистрирован: Wed Sep 19 2007, 03:42PM
Сообщений: 617
Понятно. То, что вы описали, это назначение программы на определенное расширение файла.
В случае с CK обработка идет по другому. От расширения файла не зависит. Поэтому и настроить там текст не так просто. Специального раздела в реестре для этого нет.

Have a nice day
Наверх
leopoldus
Fri Nov 12 2010, 10:20AM
ID пользователя #170
Зарегистрирован: Sun Aug 31 2008, 06:31AM
Сообщений: 56
Comfort написал(а) ...

Понятно. То, что вы описали, это назначение программы на определенное расширение файла.
В случае с CK обработка идет по другому. От расширения файла не зависит.

Не совсем. В начале моего предыдущего сообщения дана ссылка на ветку системного реестра [HKEY_CLASSES_ROOT\*\Shell] - там хранятся универсальные команды контекстного меню, относящиеся ко всем типам файлов. А пример с Folder Options на картинке - это, конечно, для одного определенного типа.
Наверх
Comfort
Fri Nov 12 2010, 10:43AM


Зарегистрирован: Wed Sep 19 2007, 03:42PM
Сообщений: 617
Ну хорошо. Ко всем типам файлов. А к каталогам?

Have a nice day
Наверх
leopoldus
Fri Nov 12 2010, 10:53AM
ID пользователя #170
Зарегистрирован: Sun Aug 31 2008, 06:31AM
Сообщений: 56
А к каталогам, если я не ошибаюсь, здесь: [HKEY_CLASSES_ROOT\Directory] или здесь [HKEY_CLASSES_ROOT\Folder] по тому же самому принципу можно изменить имя команды, назначить акселератор и т.д.

[ Редактирование Fri Nov 12 2010, 10:56AM ]
Наверх
Comfort
Sat Nov 13 2010, 02:03PM


Зарегистрирован: Wed Sep 19 2007, 03:42PM
Сообщений: 617
Мы, конечно, могли бы продолжить "серию вопросов и ответов". Просто поверьте мне как разработчику, такой метод реализации контекстного меню был выбран неспроста.

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

Неужели вы так часто пользуетесь этим пунктом в контекстном меню? Я могу прикинуть, что раза два в день. Неужели намного больше? Для чего? Утолите мое любопытство.


Have a nice day
Наверх
leopoldus
Sat Nov 13 2010, 02:43PM
ID пользователя #170
Зарегистрирован: Sun Aug 31 2008, 06:31AM
Сообщений: 56
Comfort написал(а) ...

Мы, конечно, могли бы продолжить "серию вопросов и ответов". Просто поверьте мне как разработчику, такой метод реализации контекстного меню был выбран неспроста.

Да я верю. Но Вы же сами задавали вопросы! Вот я и пытался на них, по мере своих слабых юзерских знаний, ответить.

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

Секундочку, что-то я здесь запутался. Да, сначала Вы предложили это решение, но потом в сообщении Nov 12 2010, 03:11PM сами же и написали, что
А, не. Извиняюсь. Этот фокус не пройдет. Поменять текст в контекстном меню Windows не получится.
.
Чего я не понимаю?

Неужели вы так часто пользуетесь этим пунктом в контекстном меню? Я могу прикинуть, что раза два в день. Неужели намного больше? Для чего? Утолите мое любопытство.

Нет, пользуюсь не так часто. Но есть другие причины, менее очевидные. Во-первых, в Windows XP ширина контекстного меню динамически подстраивается под ширину самой длинной строки в меню. Как нетрудно догадаться, это строка "Назначить клавишу быстрого вызова...". Все остальные команды намного короче, поэтому из-за команды Comfort Keys мое контекстное меню становится примерно вдвое шире. Вы можете спросить, а как мне мешает жить ширина контекстного меню? Но это долго объяснять, и так мы совсем уйдем в сторону от темы. Так что в данном случае уже я прошу поверить мне как юзеру на слово что это не простой каприз "чтоб было красиво".
Есть и еще одна причина. В меню есть другие команды, начинающиеся на "Н", поэтому удобнее присвоить каждой из них уникальный акселератор или, по крайней мере, сделать так, чтобы их имена начинались с разных букв.
Наверх
Comfort
Sat Nov 13 2010, 04:08PM


Зарегистрирован: Wed Sep 19 2007, 03:42PM
Сообщений: 617
Понятно.

Поменять текст в контекстном меню Windows не получится. Но сделать так, чтобы вся программа была на русском, а контекстное меню на английском можно. Только это слишком запутанно.

Have a nice day
Наверх
Модераторы: Comfort

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System