XKeys — скрипт для замены одноимённого плагина
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
XKeys — скрипт для замены одноимённого плагина
Скрипт для замены плагина XKeys
Позволяет использовать в ФАРе (в том числе и для макросов) клавиатурные сочетания AltTab, AltEsc, AltSpace, AltEnter, AltPrntScrn, CtrlEsc и кнопку PrntScrn (она же PrtScr, она же PrintScreen) обычно зарезервированные Windows под системные нужды.
Очень краткая инструкция к очень короткому скрипту:
Перехватываемые клавиши перечисляются в строке с "local KEYS". После внесения изменений следует перезагрузить макросы или перезапустить ФАР.
Установка: Поместить скрипт в папку %farprofile%\macros\scripts или в любую подпапку там же.
Позволяет использовать в ФАРе (в том числе и для макросов) клавиатурные сочетания AltTab, AltEsc, AltSpace, AltEnter, AltPrntScrn, CtrlEsc и кнопку PrntScrn (она же PrtScr, она же PrintScreen) обычно зарезервированные Windows под системные нужды.
Очень краткая инструкция к очень короткому скрипту:
Перехватываемые клавиши перечисляются в строке с "local KEYS". После внесения изменений следует перезагрузить макросы или перезапустить ФАР.
Установка: Поместить скрипт в папку %farprofile%\macros\scripts или в любую подпапку там же.
- Attachments
-
- XKeys.1.00.7z
- XKeys 1.00
- (509 Bytes) Downloaded 410 times
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: XKeys — макрос для замены одноимённого плагина
Рекомендую в описании указать назначение макроса, чтобы избавить читателей от ненужных скачков по форуму.
То же касается и заголовка темы.
То же касается и заголовка темы.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: XKeys — скрипт для замены одноимённого плагина
По привычке писал "макрос". Исправил на "скрипт".
На счёт заголовка не уверен, как лучше, что бы было не очень длинно.
Может просто сократить до "XKeys"?
На счёт заголовка не уверен, как лучше, что бы было не очень длинно.
Может просто сократить до "XKeys"?
Разум когда-нибудь победит.
- HaRT
- Moderator
- Posts: 10854
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: XKeys — скрипт для замены одноимённого плагина
Зачем что-то выдумывать?Smitis wrote:как лучше, что бы было не очень длинно.
Может просто сократить до "XKeys"?
Предлагаю “Задействовать разные хитрые кнопки (AltEnter, AltSpace, PrntScrn, …) в макросах и т.п.”.
А вот название, думаю, лучше сменить, чтобы не было путаницы между нативным плагином и луа-скриптом.
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: XKeys — скрипт для замены одноимённого плагина
Мой вариант заголовка и предыстории:
XKeys — доступ к клавишам, зарезервированным консолью
Консоль Windows резервирует для собственных функций следующие клавиатурные сочетания:Поэтому их невозможно использовать в фаре, нельзя назначить на них макросы и т.п.Code: Select all
AltTab, AltEsc, AltSpace, AltEnter, AltPrntScrn, CtrlEsc, PrntScrn (PrtScr, PrintScreen)
Однако выход есть: с помощью недокументированной функции Windows APISetConsoleKeyShortcuts
можно "разблокировать" нужные клавиши.
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: XKeys — скрипт для замены одноимённого плагина
Плагин для Far 2, а скрипт - для Far 3.HaRT wrote:А вот название, думаю, лучше сменить, чтобы не было путаницы между нативным плагином и луа-скриптом.
Мне кажется этот тот случай, когда общность названий к лучшему.
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: XKeys — скрипт для замены одноимённого плагина
Code: Select all
Event { group="ExitFAR"; description="XKeys reset on quit";
action=function() C.SetConsoleKeyShortcuts(1,0,0,0) end;
}
- HaRT
- Moderator
- Posts: 10854
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: XKeys — скрипт для замены одноимённого плагина
Я только сейчас осознал, что это не сделать через пользовательский интерфейс свойств консоли. Привык, что для PIF-файлов можно было галочками отметить, какие из этих сочетаний оставить системе.John Doe wrote:Консоль Windows резервирует для собственных функций следующие клавиатурные сочетания:Поэтому их невозможно использовать в фаре, нельзя назначить на них макросы и т.п.Code: Select all
AltTab, AltEsc, AltSpace, AltEnter, AltPrntScrn, CtrlEsc, PrntScrn (PrtScr, PrintScreen)
Фар есть инструмент, а не нянька. © 2009 DrKnS
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: XKeys — скрипт для замены одноимённого плагина
И как их можно перепутать?HaRT wrote:А вот название, думаю, лучше сменить, чтобы не было путаницы между нативным плагином и луа-скриптом.
Вот только если так обозвать имя файла со скриптом... как то не очень...Предлагаю “Задействовать разные хитрые кнопки (AltEnter, AltSpace, PrntScrn, …) в макросах и т.п.”.
Разум когда-нибудь победит.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: XKeys — скрипт для замены одноимённого плагина
А надо?John Doe wrote:Code: Select all
Event { group="ExitFAR"; description="XKeys reset on quit"; action=function() C.SetConsoleKeyShortcuts(1,0,0,0) end; }
Разум когда-нибудь победит.
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: XKeys — скрипт для замены одноимённого плагина
Через PIF можно и сейчас наверно сделать. Не получилосьHaRT wrote:Привык, что для PIF-файлов можно было галочками отметить, какие из этих сочетаний оставить системе. :oops:
Smitis
Не обязательно, но в плагине было.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Re: XKeys — скрипт для замены одноимённого плагина
Я видел. Оттуда и позаимствовал идею.John Doe wrote:но в плагине было.
Вот если запускать ФАР из командного файла и если после закрытия ФАРа (не через [x]) из этого командного файла запускать ещё какую-нибудь консольную программу при работе которой эти кнопкосочетания обязательно нужно вернуть системе... Как-то слишком надумано, а других вариатов придумать не смог. Пока не буду переусложнять.
П.С.
Ах да, ещё вариант из какой-нибудь другой консольной программы запускать ФАР в качестве редактора/просмоторщика...
Разум когда-нибудь победит.
- HaRT
- Moderator
- Posts: 10854
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
XKeys — скрипт для замены одноимённого плагина
Идеально было бы как-то восстанавливать запомненное прежде значение…John Doe wrote:Code: Select all
Event { group="ExitFAR"; description="XKeys reset on quit"; action=function() C.SetConsoleKeyShortcuts(1,0,0,0) end; }
Да вот функции
GetConsoleKeyShortcuts
в kernel32.dll
нету. Кто-нибудь проверял, SetConsoleKeyShortcuts
часом не возвращает старое значение под видом BOOL
? Или может при каком другом значении первого параметра (например, 0
)?PS
Кстати, меня обманывает память, или несколько лет назад исходники тогдашней Винды утекли в открытый доступ? Если так, то можно было бы там глянуть…
Фар есть инструмент, а не нянька. © 2009 DrKnS
- John Doe
- Бюрократ
- Posts: 13847
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: XKeys — скрипт для замены одноимённого плагина
HaRT
Функция недокументирована, и судя по скудости выдачи гугла — пользуются ей единицы.
В ReactOS не реализована, в Wine тоже (не знаю насколько она вообще там применима).
Как уже замечено выше — вероятность того, что фар вызван откуда-то кроме консоли cmd — стремится к 0
Функция недокументирована, и судя по скудости выдачи гугла — пользуются ей единицы.
В ReactOS не реализована, в Wine тоже (не знаю насколько она вообще там применима).
Как уже замечено выше — вероятность того, что фар вызван откуда-то кроме консоли cmd — стремится к 0