Blog. Just Blog

Как сделать, чтобы окно WinRAR закрывалось по Esc

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Software | Автор: ManHunter
Как сделать, чтобы окно WinRAR закрывалось по Esc
Как сделать, чтобы окно WinRAR закрывалось по Esc

Всем хорош архиватор WinRAR, но есть у него один недостаток. Этот недостаток заключается в том, что главное окно GUI-версии архиватора закрывается только по Alt-F4 или по нажатию на крестик. Очень неудобно, тем более, что архиватор не является программой, которая постоянно должна быть на экране. Отработал задачу - завершил работу. Автора уже просили сделать опциональным закрытие по Esc, но Евгений эту просьбу проигнорировал. Придется нам самим избавляться от этого неудобства.

На руборде Inoz2000 предложил интересное решение с патчем ресурсов. Открываем файл RarLng.dll в программе Resource Hacker, переходим в секцию "Accelerators", там находим группу "LISTACC" и в ней открываем единственный список акселераторов. В список надо добавить строчку "VK_ESCAPE, 110, VIRTKEY", как показано на скриншоте. После этого компилируем ресурсы соответствующей кнопкой, сохраняем изменения в файл. Вот и все, теперь WinRAR будет закрываться по нажатию клавиши Esc.

Добавляем в ресурсы акселератор
Добавляем в ресурсы акселератор

Теперь ответы на возможные вопросы. Что вообще это было? Про акселераторы можно почитать на MSDN. С названием клавиши все более-менее понятно, но следует внести ясность, откуда взялось значение 110. Если посмотреть в ресурсах главное меню, то пункт "Выход", отвечающий, собственно, за закрытие главного окна программы, имеет индекс 110. А мы просто добавили для этого пункта клавишу-акселератор Esc.

Индекс пункта меню "Выход"
Индекс пункта меню "Выход"

Почему я использовал Resource Hacker вместо своего неизменного eXeScope? Дело в том, что при редактировании подобных ресурсов, eXeScope ограничивает размер редактируемого текста до исходного. То есть добавить строчку не получится, ее можно только вписать вместо какой-нибудь существующей. Resource Hacker пересобирает ресурсы заново, поэтому таких ограничений в нем нет.

Почему изменения вносились в языковую библиотеку RarLng.dll, а не в основной файл? При использовании локализации, ресурсы из dll имеют приоритет и перекрывают данные из основного файла. Если файл локализации RarLng.dll не используется (отсутствует), то изменения надо будет вносить в ресурсы самого исполняемого файла WinRAR.exe. Впрочем, если одинаково отредактировать оба файла, то ничего плохого тоже не случится.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 1995 | Комментариев: 10

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Compiller (30.08.2016 в 10:00):
Дежавю - делал то же самое ещё до появления Resource Hacker году в 2000 в универе - на notepad от Windows 98 с помощью обрезанного до не могу редактора ресурсов из Borland С.

Там же можно было сделать сохранение по F2 например.

В XP и 2003 правлю файлик c:\WINDOWS\mui\FALLBACK\0419\explorer.exe.mui
Строки номер 595 и 578
Пуск меняю на *

Там же раньше ещё и Tab Sequence менялся - то есть порядок перебора элементов в окне нажатию TAB
Миха (30.08.2016 в 08:39):
я WinRAR тоже Resource Hacker(-ом) взламывал, удалял REMINDER DIALOG или менял стиль кнопки "Close" в этом диалоге на BS_AUTORADIOBUTTON
ManHunter (29.08.2016 в 10:36):
Это неправильное чувство. Руборд в помощь, тема по сборкам WinRar.
Станислав (29.08.2016 в 07:58):
Такое чувство что в статье не хватает ссылки на архив с уже "доработанным" винраром...
ManHunter (28.08.2016 в 23:45):
Попробовал на муевом файле, мне Блокнот тоже не поддался.
pawel97 (28.08.2016 в 18:26):
А я к ctrl+w привык, и в огнелисе точно так же вкладка закрывается, или окно, если вкладка единственная. А про акселераторы, к своему стыду, не знал (не программист пока), так что спасибо за инфу.
Про блокнот: Windows\ru-RU\notepad.exe.mui - вот тут есть таблица акселераторов, только подстановка туда похожей строки не приводит к желаемому. ЧЯДНТ?
Vladimir (28.08.2016 в 15:59):
Вот всегда если пишу что-нибудь для себя, обязательно предусматриваю выход на Esc. Почему другие разрабы этого не делают? Esc ведь гораздо эргономичнее для нажатия, в отличие от Alt+F4.
ManHunter (28.08.2016 в 13:45):
Не могу, там менюшки не в ресурсах. Да и вообще, AkelPad в качестве замены виндовому Блокноту уже давно рулит.
Never (28.08.2016 в 13:15):
Бро, а блокнот виндовый так могешь? ))
kaktustv (28.08.2016 в 09:59):
Ух, как интересно!

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2018
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.003 сек.) / Память: 4.75 Mb
Наверх