Кратко опишу проблему:
keyboard.hook_key(‘f7’, TranslateAll, suppress=True) при нажатии на F7 вызывает функцию TranslateAll.
Алгоритм работы функции:
1. Библиотека pyperclip вытаскивает из буфера обмена текст
2. Библиотека googletrans переводит текст
3. pyperclip вставляет обратно в б/о переведенный текст
Все отлично работает, однако, после компиляции в .exe, после ~10 вызовов функции, keyboard.hook_key() перестает реагировать на нажатия или же вызывать функцию. Причем это не сопровождается какими-либо сообщениями в консоли. Просто нажимаю F7 и все — никаких ошибок.
Я также пробовал заново назначать F7 в keyboard.hook_key() при ошибке (оборачивал алгоритм в try-except), но это тоже ничего не дало.
В чем может быть проблема?
Проблемная часть кода: (Если вы скомпилируете этот код с помощью
pyinstaller «NameOfCode.py»
, то сможете увидеть описанную мной проблему)
Python | ||
|
Вывод при работе в виде .py-файла:
Срабатывание №1
Срабатывание №2
Срабатывание №3
Срабатывание №4
#пока пользователь не закончит работу
Вывод при работе в виде .exe-файла:
Срабатывание №1
Срабатывание №2
Срабатывание №3
Срабатывание №4
Срабатывание №5
Срабатывание №6
Срабатывание №7
Срабатывание №8
#функция перестает вызываться
P.S. Прошу прощения за длинный текст, просто нужно было максимально разъяснить суть проблемы. И, пожалуйста, не надо тыкать мне на то, что python — интерпретируемый язык, а не компилируемый. Моя задача — верно донести смысл, так?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Главная > Key Manager
Часто задаваемые вопросы
1. Можно ли переназначить клавишу или кнопку мыши независимо от состояния клавиш-модификаторов Ctrl, Shift и других?
Да, для этого в действии «Клавиша или кнопка мыши» необходимо поставить галочку на опции «Переназначать независимо от состояния клавиш-модификаторов…».
2. В одной программе переназначение клавиш не работает. Почему?
-
Это может происходить по причине того, что эта программа имеет более высокие права, чем Key Manager. Вы можете попробовать запустить Key Manager от имени Администратора. Для этого необходимо выгрузить Key Manager из памяти (Меню, Файл -> Выход) и затем на ярлыке Key Manager нажать правую кнопку мыши и выбрать «Запуск от имени администратора».
-
Также можно попробовать запускать Key Manager позже, т.е. сначала запустить проблемную программу и затем уже Key Manager.
-
Если Вы используете Исключения (поле «Применять»), то проверьте правильность путей к исполняемым файлам. Они могут измениться, например, если профили были перенесены с другого компьютера.
-
Если переназначения не работают везде, то проверьте не стоит ли Key Manager на паузе. Режим паузы можно включить или отключить в главном окне программы, а также через меню значка на панели задач или кликом средней кнопки/колеса мыши по значку. Также иногда пользователи ошибочно задают клавиши наоборот. В верхнем поле должна быть клавиша, которую Вы будете физически нажимать на клавиатуре, а ниже задаётся новое значение, которое будет отправлено в систему.
3. Возможно ли переназначать клавиши в зависимости от раскладки клавиатуры?
Да, такая возможность появилась начиная с версии 1.14.
4. Key Manager перестает работать через некоторое время и при выходе отображает ошибку «Mouse Hook Error» или «Keyboard Hook Error». Как исправить?
-
Данная ошибка была исправлена в версии 1.13 сборке 416 (4 января 2019). Для решения этой проблемы необходимо установить самую новую версию Key Manager.
-
Важно! Если Вы используете Windows 10, то установите самые последние обновления системы.
Если вышеуказанное не помогает, то:
-
Отключите в настройках Key Manager опции «Переназначать внутренние программные нажатия Мыши» и «Переназначать внутренние программные нажатия Клавиш».
-
Или в реестре Windows в разделе HKEY_CURRENT_USERControl PanelDesktop добавьте параметр с именем LowLevelHooksTimeout типа DWORD со значением 10000 (десятичная). Или просто выполните в Windows этот REG файл, который сделает это исправление автоматически. После внесения изменений необходимо перезагрузить компьютер.
5. Вообще не запускается программа Key Manager. Почему?
1. Скачайте и установите самую новую версию Key Manager. Данная ошибка была исправлена начиная с версии 1.13.
2. Обнаружено, что Key Manager не запускается, если установлена программа Comodo Internet Security ранее 6-й версии. Для решения проблемы необходимо в Comodo добавить keymanager.exe в Defence+ -> Defence+ Settings -> Execution Control Settings -> Detect shellcode injections -> exclusions
6. Как по горячей клавише ставить знак ударе́ния в любо́м редакторе?
-
Для этого скачайте файл udarenie.doc и откройте его в программе MS Word. Он содержит знак ударения.
-
Скопируйте это ударение в буфер обмена (это можно сделать только комбинациями клавиш Ctrl+A и затем Ctrl+C).
-
После этого в Key Manager назначьте на любую удобную клавишу или комбинацию действие «Впечатывание текста» и в его поле «Текст:» вставьте скопированный символ ударения. Нажмите кнопку «ОК».
Чтобы потом добавлять знак ударения при любом редактировании — поставьте курсор после той буквы, на которую нужно поставить ударение и нажмите заданную горячую клавишу.
7. На моей клавиатуре нет клавиш для печати значков Рубль (₽), Евро (€), Фунт (£) и Мягкий перенос. Скажите, можно ли назначить эти символы на какую-нибудь клавишу (или комбинацию)?
Да, с помощью Key Manager это очень просто сделать. Два варианта:
1. Можно использовать действие «Впечатывание текста» (или «Вставка текста»), скопировав прямо с этой страницы необходимый символ и назначить это действие на клавишу, кнопку мыши, комбинацию клавиш или пункт меню. Символ мягкого переноса можно скопироварь из этого длииииииииииииииииииииииииииинного слова.
2. Или использовать действие «Последовательность нажатий», проэмулировав набор нажатий, например, Евро: Alt + 0136 (для русской раскладки) или Alt + 0128 (для английской). Другие символы: Alt + 0128 (€), Alt+0163 (£), Alt+0165 (¥), Alt + 0153 (™), Alt+0169 (©), Alt+0174 (®), Alt+0177 (±), Alt+0149 (•) и Alt+0173 (мягкий перенос).
Цифры вводятся в режиме NumLock. Получить другие символы и их коды можно с помощью программы MS Word («Вставка символа»). Недостатком (или иногда достоинством) этого способа, в данном случае, является зависимость от раскладки.
8. Можно ли через Key Manager включать определенную раскладку клавиатуры?
Это можно реализовать так:
1. В параметрах Windows этой раскладке задать комбинацию клавиш.
2. С помощью Key Manager переназначить заданную комбинацию на любую желаемую клавишу или комбинацию (см. снимок экрана).
9. Как перенести профили и настройки на другой компьютер?
Это можно сделать через главное меню Файл > Экспорт/Импорт. Если Вы используете Исключения (поле «Применять»), то проверьте правильность путей к исполняемым файлам. На разных компьютерах они могут отличаться. В настоящий момент невозможно экспортировать и импортировать выборочные профили, папки и действия.
10. Можно ли назначить пунктам меню горячие клавиши, чтобы быстро выбирать нужный пункт (когда меню уже отображается)?
Да, для этого прямо в имени действия напишите символ горячей клавиши, предварив его знаком «&». Например, «Вставить &дату» — «д» будет горячей клавишей вызова пункта меню:
11. Можно ли по горячим клавишам включить/отключить Wi-Fi?
Да, для этого в действии «Запуск программы или файла» в поле «Укажите путь к папке, файлу или программе» укажите:
netsh
и ниже в поле «Параметры» укажите:
Для подключения:
wlan connect name=»Здесь имя Wi-Fi сети»
Для отключения:
wlan disconnect
Чтобы при этом не появлялось консольное окно, необходимо в выпадающем списке «Показать окно» выбрать «Скрытое». Убедитесь, что нет лишних начальных и конечных пробелов — из-за них команда может не работать.
12. Можно ли впечатать или отобразить как всплывающее окно лучший текущий курс продажи/покупки доллара в Москве, полученный с сайта Kovalut.ru, по горячей клавише или через всплывающее меню?
Да, это можно реализовать через VBScript. Для этого создайте в какой-нибудь папке файл get_usd_rate.vbs с таким кодом:
Set doc = CreateObject(«MSXML2.DOMDocument»)
doc.async = false
doc.load(«https://informer.kovalut.ru/webmaster/getxml.php?kod=7701»)
If doc.parseError <> 0 Then
WScript.Echo doc.parseError.reason
WScript.Quit 1
End If
Set nodes = doc.selectNodes(«/Exchange_Rates/City/USD/Buy») ‘Buy — покупки, Sell — продажи
Set WshShell = WScript.CreateObject(«WScript.Shell»)
For Each node In nodes
WshShell.SendKeys «Лучший курс покупки доллара в Москве: « & node.text ‘Впечатывание текста
MsgBox «Лучший курс покупки доллара в Москве: « & node.text ‘Если Вам нужно всплывающее окно
Next
Затем в Key Manager вызывайте этот скрипт через действие «Запуск программы или файла». В поле «Укажите путь к папке, файлу или программе» укажите путь к файлу скрипта (можно просто перетащить файл на окно действия), например:
c:VBScriptsget_usd_rate.vbs
13. Как транслитерировать любой выделенный текст по горячей клавише?
Это можно реализовать через VBScript. Скачайте файл скрипта translit.vbs или translit_underline.vbs (с заменой пробелов на подчеркивание) в какую-нибудь папку. Затем в Key Manager назначьте на горячую клавишу или комбинацию действие «Запуск программы или файла». В поле «Укажите путь к папке, файлу или программе» укажите путь к этому файлу (можно просто перетащить файл на окно действия) и затем в поле «Параметры:» укажите (обязательно в кавычках):
«%km_seltext»
Теперь при нажатии этой горячей клавиши текущий выделенный текст будет транслитерироваться и отображаться во всплывающем окне с возможностью его скопировать.
14. Как создать QR-код на основе любого веделенного текста в Windows?
Для этого Вы можете использовать действие «Открытие веб-страницы» и в поле «Укажите адрес веб-сайта или страницы» впишите ссылку на какой-нибудь онлайн-сервис QR-кодов с параметром %km_seltext, например:
http://qrcoder.ru/code/?%km_seltext&10&0
15. Можно ли создать всплывающее меню с папками и открывать их в одном окне Проводника Windows?
Именно для открытия в одном окне задача усложняется. Для решения можно использовать, например, VBScript. Для этого создайте файл set_folder.vbs с таким кодом:
Вариант 1. В нем закрываются все окна Проводника и открывается нужная папка в новом окне, которая передаётся из Key Manager:
Set shell = CreateObject(«Shell.Application»)
Set oWindows = Shell.Windows
For j = 0 To oWindows.Count — 1
oWindows.Item(j).Quit
Next
shell.Open(WScript.Arguments(0))
Set shell = Nothing
Set oWindows = Nothing
Вариант 2. В нем идет поиск на наличие хотя бы одного окна Проводника. Если найдено, то эмулируется нажатие Ctrl + L (^ — клавиша Ctrl, % — Alt, + — Shift) и впечатывается путь, который передаётся из Key Manager (важно: окно Проводника должно быть активно). Если окна не найдены, то открывается новое:
If WScript.CreateObject(«Shell.Application»).Windows.Count = 0 Then
CreateObject(«Shell.Application»).Open(WScript.Arguments(0))
Else
Set WshShell = WScript.CreateObject(«WScript.Shell»)
WshShell.SendKeys «^l»
WshShell.SendKeys WScript.Arguments(0)
WshShell.SendKeys «{ENTER}»
End If
Затем в Key Manager вызывайте этот скрипт через действие «Запуск программы или файла». В поле «Укажите путь к папке, файлу или программе» укажите путь к файлу скрипта, например:
c:VBScriptsset_folder.vbs
и ниже в поле «Параметры» укажите папку для открытия (обязательно в кавычках), например:
«c:Program Files»
16. Как сделать, чтобы по горячей клавише выделенный в любой программе текст открывался, например, в программе Chrome? Сейчас действие «Открытие веб-страницы» открывает выделенный текст в браузере по умолчанию.
Если Вас не устраивает открытие в браузере по умолчанию, как показано в этом видео, то Вы можете использовать действие «Запуск программы или файла» и указать в поле «Укажите путь к папке, файлу или программе» адрес исполняемого файла требуемой программы, например, Chrome:
C:Program Files (x86)GoogleChromeApplicationchrome.exe
И ниже в поле «Параметры» укажите строку запроса поиска (обязательно в кавычках, чтобы можно было искать фразы с несколькими словами, разделенными пробелами), например, через Google:
«https://www.google.ru/search?q=%km_seltext»
Или через Яндекс:
«https://yandex.ru/search/?text=%km_seltext»
См. снимки экрана Google и Яндекс.
17. Можно ли в приложениях производить быстрый вызов пунктов меню, у которых нет горячих клавиш? Например, элемент меню, который находится очень глубоко?
Да, это возможно. Для этого Вы можете проэмулировать все нажатия клавиш обращения к требуемому пункту меню — см. видео.
Это Вы можете сделать с помощью действия «Последовательность нажатий»:
1. Убедитесь, что включена кнопка «Пропускать нажатия в систему» (значок в виде земного шара с клавишей) и отключена «Записывать нажатия кнопок мыши» (значок с изображением мыши).
2. Переключитесь на программу, где нужно будет вызывать действие из меню.
3. Начните запись с помощью горячей клавиши F12 (её можно изменить в настройках). После этого все нажатия клавиш будут записываться.
4. Нажмите клавишу Alt (чтобы открыть меню), с помощью стрелок курсора на клавиатуре перейдите на нужный пункт меню и выберите его с помощью клавиши Enter.
5. Остановите запись с помощью горячей клавиши F12 (её можно тоже изменить в настройках).
6. Вернитесь в Key Manager. Если при записи Вы случайно нажали лишнюю клавишу, то в списке нажатий Вы можете её удалить.
Теперь при вызове этого действия в Вашей программе, у Вас будет мгновенно выполняться заданный пункт меню. Если Вы хотите, чтобы это действие работало только в Вашей программе (или нескольких программах) – просто создайте «Исключение» (см. видео-пример использования Исключений).
18. Можно ли открывать папку в Total Commander, а не в штатном проводнике?
Да, это возможно. Для этого в действии «Запуск программы или файла» в поле «Укажите путь к папке, файлу или программе» укажите путь к исполняемому файлу Total Commander, например:
c:Program FilesTotal Commandertotalcmd.exe
и ниже в поле «Параметры» укажите папки для открытия, например:
«c:Моя музыка» (откроется в левой панели папка «Моя музыка»)
/R=»d:Мои файлы» (откроется в правой панели папка «Мои файлы»)
/O /T /L=c:Docs (откроется слева в новой вкладке уже запущенного Total Commander папка «Docs»)
d:Music c:Temp (сразу в левой и правой панелях)
Если путь содержит пробелы, то необходимо его писать в кавычках.
Список всех возможных параметров Вы можете найти на сайте Total Commander.
Также можно производить вызов через промежуточный .bat или .cmd файл. А чтобы при этом не появлялось консольное окно, необходимо в выпадающем списке «Показать окно» выбрать «Скрытое».
19. Можно ли по горячей клавише реализовать запись (добавление) любого выделенного текста в текстовый файл?
Да, для этого Вы можете воспользоваться действием «Запуск программы или файла» и вызывать командный (.cmd или .bat) файл, передавая параметром текущий выделенный текст.
Содержимое .cmd файла может быть таким:
chcp 1251
echo %~1 >> «C:UsersИван ПетровDesktopСловарь.txt»
Для определения выделенного текста, используйте в поле параметра командной строки шаблон:
«%km_seltext»
Кавычки необходимы, чтобы была возможность передавать несколько слов.
chcp 1251 — для установки кодировки Windows 1251.
Чтобы не появлялось консольное окно, установите в поле со списком «Показывать окно» значение — «Скрытое».
20. Как назначить Lock Workstation (блокировку системы) на мою комбинацию клавиш? В системных командах Key Manager такого не нашел.
Для этого Вы можете использовать действие «Запуск программы или файла» и задать такие параметры:
Имя файла: rundll32.exe
Параметры: user32.dll, LockWorkStation
Чтобы не появлялось консольное окно, установите в поле со списком «Показывать окно» значение — «Скрытое».
21. Можно ли по горячей клавише открывать сразу несколько сайтов в браузере Chrome?
Да, для этого Вы можете воспользоваться действием «Запуск программы или файла» и вызывать командный (.cmd или .bat) файл, например, с таким содержимым:
start chrome https://atnsoft.ru &
start chrome https://example.com &
Чтобы не появлялось консольное окно, установите в поле со списком «Показывать окно» значение — «Скрытое».
22. При выполнении действия «Открытие Web-страницы» открывается не тот браузер, который назначен в системе по умолчанию. Как сделать, чтобы открывался браузер, установленный по умоляанию?
Key Manager открывает тот браузер, который ассоциирован с типом файлов «.htm» (именно «.htm», не «.html»).
23. Не запускается приложение «Ножницы» (C:WindowsSystem32SnippingTool.exe) из действия. Подскажите, почему?
Просто установите следующий путь:
C:WindowsSysnativeSnippingTool.exe
В 64-разрядных ОС когда 32-разрядное приложение пытается получить доступ к C:WindowsSystem32 оно автоматически перенаправляется в папку C:WindowsSysWOW64. Поэтому невозможно запустить файл SnippingTool.exe, т.к. он просто отсутствует в этой папке. Единственный способ — использовать путь C:Windowssysnative и обходить перенаправление.
24. Какова длительность такта в долгом нажатии?
Для мыши длительность каждого такта составляет 100 мс, а для клавиатуры длительность первого такта равна значению «Задержка перед началом повтора», второго и последующих равна значению «Скорость повтора», которые задаются в настройках клавиатуры Windows.
25. Нет ли случайно какого-нибудь ключа для фонового запуска Key Manager непосредственно в трэй? Т.е., чтобы запускалась в скрытом виде.
Да, для этого Вы можете использовать ключи /hidden или /autorun (при втором ключе программа не запустится вообще, если флажок «Запускать при загрузке Windows» не установлен).
26. Как на клавишу Num Lock назначить Pause и Break?
При обычном нажатии на клавишу Pause/Break выполняется Pause, а удерживая Ctrl — Break.
Также в Windows уже существуют малоизвестные всем комбинации Ctrl + Num Lock (это Pause) и Ctrl + Scroll Lock (это Break). Поэтому, если Вам нужно назначить на Num Lock — Break, а на Crtl + Num Lock — Pause, то Вы можете просто создать одно действие «Клавиша или кнопка мыши»: Num Lock -> Break. Если Вам нужно назначить на Num Lock — Pause, а на Crtl + Num Lock — Break, то тогда создайте два действия: Num Lock -> Pause и Ctrl + Num Lock (отобразится как Pause) -> Break.
27. Можно ли взять последние 3 копированных текстов в буфер обмена и вставить их через Tab?
Это можно реализовать так:
-
С помощью действия «Последовательность нажатий» Вы можете проэмулировать нажатие комбинации Win + V (меню истории буфера обмена — новая удобная возможность в Windows 10, о которой некоторые ещё не знают).
-
После чего, скорее всего, нужно будет добавить задержку, т.к. меню появляется не мгновенно.
-
Эмулируете выбор стрелками в меню буфера обмена и нажатие Enter.
-
Эмулируете нажатие Tab и т.д.
28. Возможно ли переопределить клавишу Sleep на клавиатуре?
Да, но для этого необходимо отключить действие на эту клавишу в Windows («Панель управления» -> «Электропитание»). Эмуляция же нажатий клавиши Sleep иногда может быть невозможна.
29. Key Manager не видит специальные клавиши на клавиатуре ноутбука. Почему?
Часто к клавиатуре или портативному компьютеру прилагается программа для применения специальных клавиш (например, для кнопок увеличения громкости — она визуально отображает на экране уровень громкости и т.п.). Иногда такие программы монопольно блокируют клавиши, что делает невозможным их переопределение. Для решения этой проблемы можно попробовать не устанавливать такие программы.
30. Почему на моем ноутбуке не переопределяется клавиша Fn?
Есть некоторые специальные клавиши, которые аппаратно запрограммированы для определенных моделей ноутбуков и специализированных клавиатур, поэтому их чтение или нажатие затрудняется или оказывается невозможным.
31. Можно ли назначать действия на комбинации с клавишей Fn, например, Fn + Z?
Да, для этого необходимо сначала сделать клавишу Fn пользовательским модификатором: откройте окно «Пользовательские модификаторы» (кнопка с буквами UM на панели инструментов главного окна) и задайте клавишу Fn как пользовательский модификатор. После этого станет возможным использовать клавишу Fn в комбинациях с другими клавишами.
32. Можно ли переназначить специальную клавишу «
» на ноутбуке Xiaomi Redmibook Pro 15?
Да, для этого необходимо в автозагрузке Windows отключить приложение OSD Utility от Xiaomi Inc. Клавишу Fn на этом ноутбуке переназначить тоже возможно.
33. Можно ли переназначить касание 2, 3 или 4 пальцами и жесты двумя пальцами по тачпаду моего Xiaomi Redmibook Pro 15?
Да, Key Manager позволяет это сделать. На некоторых устройствах других брендов могут быть ограничения, но на данном точно должно работать.
34. Распознаёт ли Key Manager дополнительные кнопки мыши, например, сейчас много мышей имеют более 5-ти кнопок?
Key Manager распознает 5 кнопок (левую, среднюю/колесо, правую, X1 и X2), а также прокрутку по вертикали и горизонтали.
Для распознавания нестандартных дополнительных кнопок, как решение, можно использовать прилагаемое к мыши ПО и там временно переназначить эти кнопки на неиспользуемые клавиши клавиатуры, например, на F13-F24, и затем можно эти временные клавиши переназначить в Key Manager.
35. Как с помощью Key Manager переназначить комбинацию K+F на двойное нажатие клавиши R?
Для этого Вы можете использовать «Пользовательские модификаторы» (кнопка с буквами UM на панели инструментов главного окна) и задать клавишу K как пользовательский модификатор. Затем можно назначить на комбинацию UM_K+F действие «Последовательность нажатий», содержащее двойное нажатие и отпускание R. Но при этом потеряется обычная функция клавиши K. Мы будем стараться усовершенствовать Key Manager в будущих версиях, чтобы сохранялась изначальная функция пользовательских модификаторов при нажатии и сразу отпускании без дополнительных клавиш.
36. Можно ли настроить Key Manager без использования мыши?
Полностью нельзя. При определении все клавиши работают в режиме их сканирования, поэтому для перевода фокуса необходима мышь. Этот недостаток предполагается исправить в будущих версиях программы.
37. Существует ли возможность временно отключить какое-либо действие, как это реализовано в программе Key Remapper (по клавише Пробел или через меню)?
К сожалению, пока такая возможность отсутствует. Как временное решение — можно создать Исключение, назначенное на какую-либо неиспользуемую программу или на не встречающийся заголовок окна и задать этому исключению имя — «Отключено». Таким образом, если потребуется отключить какое-либо действие, можно просто в поле со списком «Применять» выбрать «Отключено».
38. Можно ли остановить выполнение макроса когда он уже запущен?
Да, для этого можно:
-
Кликнуть левой кнопкой по значку в системной области.
-
Или кликнуть правой кнопкой по значку и выбрать «Прервать выполнение действия».
-
Или с помощью действия «Управление Key Manager», «Прервать выполнение действия» (эта возможность появилась в версии 1.14).
39. Есть ли возможность зациклить выполнение действия?
К сожалению, пока такой возможности нет.
40. Могу ли я установить Key Manager на Windows 98, Windows ME или более ранние версии Windows?
Нет. По причине полного отсутствия пользователей данных операционных систем их поддержка не реализована. Это сделано из-за оптимизационных соображений, чтобы не утяжелять Key Manager невостребованными функциями.
Вы можете задать вопрос, на который не нашли ответ:
Forum Rules |
|
Содержание
- Часто задаваемые вопросы
- 1. В одной программе переназначение клавиш не работает. Почему?
- 2. Как переназначить сломанную клавишу?
- 3. Key Remapper перестает работать через некоторое время и при выходе отображает ошибку «Mouse Hook Error» или «Keyboard Hook Error». Как исправить?
- 4. Как переназначить клавишу только в определённой раскладке клавиатуры?
- 5. Распознаёт ли Key Remapper дополнительные кнопки мыши, например, сейчас много мышей имеют более 5-ти кнопок?
- 6. Программа работает нестабильно, «залипают» клавиши-модификаторы. Как это исправить?
- 7. Можно ли на комбинацию клавиш назначить другую комбинацию или какое-либо действие? Мне необходимо поменять местами комбинации клавиш: Shift+Insert на Ctrl+C, Ctrl+Insert на Ctrl+V, Shift+Del на Ctrl+X и Alt+Backspace на Ctrl+Z.
- 8. Как назначить две или более одновременно нажатых клавиш на одну?
- 9. Как произвести обратную замену клавиш?
- 10. Key Remapper не видит специальные клавиши на клавиатуре ноутбука. Почему?
- 11. Не запускается программа Key Remapper. Почему?
- 12. Возможно ли переопределить клавишу Sleep на клавиатуре?
- 13. Почему на моем ноутбуке не переопределяется клавиша FN?
- 14. В чем разница между режимами «Синхронно», «При нажатии» и «При отпускании»?
- 15. Нет ли случайно какого-нибудь ключа для фонового запуска Key Remapper непосредственно в трэй? Т.е., чтобы запускалась в скрытом виде.
- 16. Как переопределить нажатие левой кнопки мыши?
- 17. Можно ли настроить Key Remapper без использования мыши?
- 18. Могу ли я установить Key Remapper на Windows 98, Windows ME или более ранние версии Windows?
- Atnsoft Key Manager 1.14.0.420 RePack + Portable by Vnvvnv
- Atnsoft Key Manager 1.14.0.420 RePack + Portable by Vnvvnv
- История версий
- 1.12 сборка 460 (7 ноября 2020)
- 1.11 сборка 435 (4 января 2019)
- 1.11 сборка 430 (28 марта 2018)
- 1.11 сборка 420 (1 марта 2018)
- 1.10 сборка 416 (28 ноября 2016)
- 1.9 сборка 400 (18 сентября 2015)
- 1.9 сборка 390 (2 сентября 2015)
- 1.8 сборка 382 (3 февраля 2014)
- 1.7 сборка 377 (21 ноября 2013)
- 1.6 сборка 370 (10 января 2013)
- 1.6 сборка 364 (5 января 2013)
- 1.5 сборка 346 (19 ноября 2012)
- 1.5 сборка 344 (30 октября 2012)
- 1.5 сборка 342 (29 октября 2012)
- 1.4 сборка 327 (12 октября 2012)
- 1.4 сборка 316 (2 января 2012)
- 1.4 сборка 308 (2 сентября 2010)
- 1.3 сборка 290 (7 сентября 2009)
- 1.3 сборка 288 (28 июля 2009)
- 1.2 сборка 272 (24 марта 2009)
- 1.2 сборка 269 (22 марта 2009)
- 1.2 сборка 264 (20 марта 2009)
- 1.2 сборка 249 (12 января 2009)
- 1.1 сборка 217 (5 декабря 2008)
- 1.0 сборка 192 (19 ноября 2008)
- 1.0 сборка 108 (5 мая 2008)
- Key Remapper
- Снимки экрана
- Как пользоваться программой
- Скачивание и установка программы Key Remapper
- Работа с программой
- Профили
- Определение, замена и блокировка
- Работа с заменами и блокировками
Часто задаваемые вопросы
1. В одной программе переназначение клавиш не работает. Почему?
Также можно попробовать запускать Key Remapper позже, т.е. сначала запустить проблемную программу и затем уже Key Remapper.
Если Вы используете Исключения (поле «Применять»), то проверьте правильность путей к исполняемым файлам. Они могут измениться, например, если профили были перенесены с другого компьютера.
Если переназначения не работают везде, то проверьте не стоит ли Key Remapper на паузе. Режим паузы можно включить или отключить в главном окне программы, а также через меню значка на панели задач или кликом средней кнопки/колеса мыши по значку. Также иногда пользователи ошибочно задают клавиши наоборот. В верхнем поле должна быть клавиша, которую Вы будете физически нажимать на клавиатуре, а ниже задаётся новое значение, которое будет отправлено в систему.
2. Как переназначить сломанную клавишу?
Иногда пользователи ошибочно пытаются задать клавиши наоборот. В верхнем поле задается клавиша, которую Вы будете физически нажимать на клавиатуре, а ниже, в выпадающем списке, можно выбрать неисправную/отсутствующую клавишу. Если какая-то программа не распозает эту клавишу из списка, то попробуйте использовать Windows-приложение «Экранная клавиатура» для считывания клавиши.
3. Key Remapper перестает работать через некоторое время и при выходе отображает ошибку «Mouse Hook Error» или «Keyboard Hook Error». Как исправить?
Данная ошибка была исправлена в версии 1.11 сборке 435 (4 января 2019). Для решения этой проблемы необходимо установить самую новую версию Key Remapper.
Важно! Если Вы используете Windows 10, то установите самые последние обновления системы.
Если вышеуказанное не помогает, то:
Отключите в настройках Key Remapper опции «Переназначать внутренние программные нажатия Мыши» и «Переназначать внутренние программные нажатия Клавиш».
Или в реестре Windows, в разделе HKEY_CURRENT_USERControl PanelDesktop, добавьте параметр с именем LowLevelHooksTimeout типа DWORD со значением 10000 (десятичная). Или просто выполните в Windows этот REG файл, который сделает это исправление автоматически. После внесения изменений необходимо перезагрузить компьютер.
4. Как переназначить клавишу только в определённой раскладке клавиатуры?
Данную возможность поддерживает более функциональная программа Key Manager (начиная с версии 1.14).
5. Распознаёт ли Key Remapper дополнительные кнопки мыши, например, сейчас много мышей имеют более 5-ти кнопок?
Key Remapper распознает 5 кнопок (левую, среднюю/колесо, правую, X1 и X2), а также прокрутку по вертикали и горизонтали. Для распознавания нестандартных дополнительных кнопок, как решение, можно использовать прилагаемое к мыши ПО и там временно переназначить эти кнопки на неиспользуемые клавиши клавиатуры, например, на F13-F24, и затем можно эти временные клавиши переназначить в Key Remapper.
6. Программа работает нестабильно, «залипают» клавиши-модификаторы. Как это исправить?
Данная ошибка была исправлена в версии 1.12 сборке 460 (7 ноября 2020). Для решения этой проблемы необходимо установить самую новую версию Key Remapper.
7. Можно ли на комбинацию клавиш назначить другую комбинацию или какое-либо действие? Мне необходимо поменять местами комбинации клавиш: Shift+Insert на Ctrl+C, Ctrl+Insert на Ctrl+V, Shift+Del на Ctrl+X и Alt+Backspace на Ctrl+Z.
Данную возможность поддерживает программа Key Manager — более функциональный вариант программы Key Remapper. Если Вам требуется, чтобы замены работали только в определённой программе или окне, то используйте «Исключения». Подробнее смотрите в видео-примере «Переназначение комбинаций клавиш».
8. Как назначить две или более одновременно нажатых клавиш на одну?
Эту возможность поддерживает программа Key Manager, при помощи действия «Последовательность нажатий».
Для этого необходимо произвести две замены: сначала первую клавишу заменить на вторую и затем вторую на первую.
10. Key Remapper не видит специальные клавиши на клавиатуре ноутбука. Почему?
Часто к клавиатуре или портативному компьютеру прилагается программа для применения специальных клавиш (например, для кнопок увеличения громкости — она визуально отображает на экране уровень громкости и т.п.). Иногда такие программы монопольно блокируют клавиши, что делает невозможным их переназначение. Для решения этой проблемы можно попробовать не устанавливать такие программы.
11. Не запускается программа Key Remapper. Почему?
1. Скачайте и установите самую новую версию Key Remapper. Данная ошибка была исправлена начиная с версии 1.11.
12. Возможно ли переопределить клавишу Sleep на клавиатуре?
13. Почему на моем ноутбуке не переопределяется клавиша FN?
Есть некоторые специальные клавиши, которые аппаратно запрограммированы для определенных моделей ноутбуков и специализированных клавиатур, поэтому их чтение или нажатие затрудняется или оказывается невозможным.
14. В чем разница между режимами «Синхронно», «При нажатии» и «При отпускании»?
Например, если Вам нужно переназначить F1 на Shift:
«Синхронно»: Вы нажимаете F1 — программно нажимается Shift. Вы отпускаете F1 — программно отпускается Shift.
«При нажатии»: Вы нажимаете F1 — программно нажимается Shift и сразу отпускается. Вы отпускаете F1 — ничего не происходит.
«При отпускании»: Вы нажимаете F1 — ничего не происходит. Вы отпускаете F1 — программно нажимается Shift и сразу отпускается.
15. Нет ли случайно какого-нибудь ключа для фонового запуска Key Remapper непосредственно в трэй? Т.е., чтобы запускалась в скрытом виде.
Да, для этого Вы можете использовать ключ /hidden или /autorun (при этом ключе программа не запустится вообще, если флажок «Запускать при загрузке Windows» не установлен).
16. Как переопределить нажатие левой кнопки мыши?
Для этого необходимо в поле определения клавиши, удерживая клавишу Ctrl (или любую другую клавишу-модификатор) нажать левую кнопку мыши. Но следует быть осторожным при переопределении левой кнопки мыши, т.к. можно потерять управление мышью. Если такое произойдет, можно поставить программу на паузу комбинацией клавиш Ctrl+P или средним кликом мыши по значку на панели задач. В крайнем случае, можно нажать комбинацию Alt+Ctrl+Del и выгрузить программу в диспетчере задач.
17. Можно ли настроить Key Remapper без использования мыши?
Полностью нельзя. При определении все клавиши работают в режиме их сканирования, поэтому для перевода фокуса необходима мышь. Этот недостаток предполагается исправить в будущих версиях программы.
18. Могу ли я установить Key Remapper на Windows 98, Windows ME или более ранние версии Windows?
Нет. По причине полного отсутствия пользователей данных операционных систем их поддержка не реализована. Это сделано из-за оптимизационных соображений, чтобы не утяжелять Key Remapper невостребованными функциями.
Вы можете задать вопрос, на который не нашли ответ:
Источник
Atnsoft Key Manager 1.14.0.420 RePack + Portable by Vnvvnv
Atnsoft Key Manager 1.14.0.420 RePack + Portable by Vnvvnv
Key Manager – более функциональный вариант программы Key Remapper, которая, кроме переназначения клавиш и кнопок мыши, содержит множество других полезных функций. Например, Key Manager позволяет переназначать комбинации клавиш и кнопок мыши, последовательности нажатий, долгое нажатие (нажатие и удержание). Позволяет представлять действия в виде всплывающих меню, которые можно открывать по горячим клавишам; выполнять, записывать и редактировать макросы нажатий (последовательности нажатий); впечатывать или вставлять текст (в том числе форматированный), мгновенно заполнять формы сайтов; запускать программы и открывать сайты (в параметрах адреса которых можно указать текущий выделенный текст); менять раскладку и регистр выделенного текста; управлять питанием монитора, ; регулировать громкость и устанавливать определенный уровень; выполнять действия над окнами (перемещение, установка конкретного размера) и многое другое.
Системные требования:
Windows 2000/XP/2003/2008/Vista/7/8/8.1/10 (32 и 64-бит)
Особенности Portable
Установленная и пролеченная программа сразу может использоваться как портативная, так как состоит из единственного исполняемого файла. Портативной программой является и файл keymanager.exe. При запуске создается папка ATNSOFT с настройками в той же папке, откуда была запущенна программа.
Скриншоты Atnsoft Key Manager 1.14.0.420 RePack + Portable by Vnvvnv торрент:
Источник
История версий
1.12 сборка 460 (7 ноября 2020)
* Исправлены ошибки «залипания» клавиш и ложных срабатываний.
* Оптимизирован код и минимизированы задержки при переназначении.
* Исправлены ошибки с Numpad-клавишами. Теперь Key Remapper корректно различает дублирующие клавиши (например, Numpad Enter) и клавиши при включенном и выключенном Num Lock.
* Исправлена ошибка, при которой при выборе из списка некоторые клавиши имели некорректный скан-код. По этой причине они не определялись в некоторых программах и играх.
* Исправлена ошибка, при которой работающее в фоне приложение Key Remapper иногда отображалось по Alt + Tab в Windows 10.
* Исправлены ошибки локализации.
1.11 сборка 435 (4 января 2019)
* Исправлена ошибка, при которой через некоторое время переставали работать переназначения и при выходе отображалось сообщение «Mouse Hook Error» или «Keyboard Hook Error».
* Исправлена ошибка, приводившая к зависаниям Key Remapper и некорректному переназначению кнопок мыши и некоторых клавиш.
* Исправлена ошибка, из-за которой не сохранялось состояние «развернуто на весть экран» главного окна программы.
* Исправлены ошибки локализации.
1.11 сборка 430 (28 марта 2018)
* Добавлена локализация на японский язык.
1.11 сборка 420 (1 марта 2018)
* Исправлены ошибки совместимости с Windows 10.
* Исправлена ошибка «Access Memory Violation» и подобные, приводившие к аварийному завершению работы Key Remapper на некоторых системах.
* Исправлена ошибка, при которой Key Remapper иногда не запускалась при загрузке Windows на некоторых системах.
* Исправлена ошибка, при которой некорректно запоминалось состояние (свёрнуто/развёрнуто) папок/меню.
* Теперь окно программы можно также открывать/закрывать по одиночному клику на значке в системной области.
* Улучшен интерфейс программы. Теперь шрифты отображаются с системным масштабированием.
* Исправлены ошибки локализации.
1.10 сборка 416 (28 ноября 2016)
* Исправлена ошибка при переназначении сразу двух состояний клавиши (на нажатие и на отпускание), при которой последнее переназначение не выполнялось.
* Исправлены ошибки локализации. Также клавиша «Cancel» была переименована в «Break», а «Apps» в «Контекстное меню».
* Теперь все исполняемые файлы Key Remapper, в дополнение к SHA-1, подписаны цифровым сертификатом SHA-256, выданными Symantec.
1.9 сборка 400 (18 сентября 2015)
* Оптимизирован код и улучшена производительность блока переназначения клавиш и кнопок мыши.
1.9 сборка 390 (2 сентября 2015)
* Исправлены ошибки совместимости с Windows 10.
* Оптимизирован код блока переназначений клавиш и кнопок мыши.
* Исправлена ошибка скрытия значка системной области в Windows XP.
* Перерисован значок «паузы» системной области для лучшего восприятия.
* Исправлены ошибки локализации. Также клавиша «Snapshot» была переименована в «Prt Sc».
* Теперь исключения сортируются в алфавитном порядке.
1.8 сборка 382 (3 февраля 2014)
* Исправлена ошибка с постоянной установкой левой кнопки мыши в полях определения, которая также не давала возможности считывать клавиши с экранных клавиатур и планшетов.
* Оптимизирован блок загрузки системных библиотек.
* Исправлены ошибки локализации.
1.7 сборка 377 (21 ноября 2013)
* Исправлена ошибка некорректного масштабирования и отображения кнопок панели инструментов и других элементов управления.
* Исправлена ошибка — переназначение колеса мыши вызывало незначительное замедление системы.
* Исправлена ошибка меню значка в системной области — по правому клику мыши кроме меню Key Remapper иногда появлялось ещё и системное меню.
* Исправлена ошибка с исчезновением значка в панели уведомлений системной области.
1.6 сборка 370 (10 января 2013)
* Исправлена ошибка эмуляции нажатий кнопок мыши X1 и X2.
1.6 сборка 364 (5 января 2013)
* Добавлена возможность переопределения прокрутки/наклона колеса мыши влево и вправо. Данная возможность будет работать начиная с Windows Vista и более новых ОС.
* Исправлена ошибка эмуляции нажатий кнопок мыши X1 и X2.
* Исправлена ошибка переключателей в окне задания действий.
* Исправлена ошибка в исключениях — не определялись программы по заголовку окна, если заданные строки содержали буквы в верхнем регистре.
* Исправлена ошибка — убраны автоповторы при переопределении клавиш клавиатуры на кнопки мыши.
* Исправлена ошибка в автоименовании исключений.
* Теперь новые действия можно создавать по нажатию Enter.
1.5 сборка 346 (19 ноября 2012)
* Теперь все исполняемые файлы программы Key Remapper подписаны цифровым сертификатом, выданным VeriSign (Symantec).
* Исправлена ошибка локализации — при первом запуске программы не сохранялся выбранный во время установки язык.
1.5 сборка 344 (30 октября 2012)
* Исправлена ошибка — эмуляция прокрутки колеса мыши вниз выполнялась два раза.
* Исправлена ошибка локализации.
1.5 сборка 342 (29 октября 2012)
* Исправлена ошибка — исключения не работали с 64-битными приложениями (также некоторыми-32 битными).
* Упрощен процесс задания левой кнопки мыши.
* Добавлены элементам интерфейса внутренние подписи, которые могут распознавать программы для людей с ограниченными возможностями.
1.4 сборка 327 (12 октября 2012)
* Исправлены ошибки совместимости с Windows 8.
* Исправлена ошибка, по причине которой программа Key Remapper не запускалась на некоторых системах.
1.4 сборка 316 (2 января 2012)
* Исправлено некорректное отображение значков программы в области уведомлений панели задач при увеличенных экранных шрифтах Windows.
1.4 сборка 308 (2 сентября 2010)
* Исправлена ошибка постоянного завершения работы Key Remapper, если установлена программа Kaspersky Internet Security 2011.
* Добавлены кнопки на панели инструментов для быстрой вставки, правки и удаления действий и папок. Изображения на кнопках стали более интуитивно-понятными.
* Добавлена возможность запускать Key Remapper в скрытом виде — при помощи параметра (ключа): /hidden
* Исправлена ошибка потери фокуса в списке действий.
* В исключениях, во всплывающем меню выбора исполняемого файла, добавлены пиктограммы программ, что упрощает их визуальный поиск.
1.3 сборка 290 (7 сентября 2009)
* Исправлена ошибка в блоке локализации программы.
1.3 сборка 288 (28 июля 2009)
* Добавлена возможность устанавливать триггерное состояние клавиш — постоянно нажата или постоянно отпущена.
* Добавлена локализация интерфейса на четыре языка: немецкий, французский, испанский и итальянский.
1.2 сборка 272 (24 марта 2009)
* Исправлена ошибка копирования действий, удерживая клавишу Ctrl.
1.2 сборка 269 (22 марта 2009)
* Исправлена ошибка — при открытии пунктов меню «Справка» в операционной системе Windows Vista открывались две страницы вместо одной.
1.2 сборка 264 (20 марта 2009)
* Исправлена серьезная ошибка периодического, некорректного завершения программы. Данная ошибка часто проявлялась в операционной системе Windows Vista.
* Исправлены незначительные ошибки отображения элементов управления при нестандартных размерах экранных шрифтов.
1.2 сборка 249 (12 января 2009)
* Добавлена возможность эмулировать двойной клик кнопок мыши и двойное нажатие клавиш с возможностью задавать задержку между нажатиями.
* Добавлена возможность отключать функцию переопределения программных клавишных нажатий.
1.1 сборка 217 (5 декабря 2008)
* Добавлена возможность переопределять программные нажатия клавиш от экранных клавиатур и других программ, производящих искусственные клавишные нажатия.
* Добавлена возможность разрешать или запрещать переопределение или блокировку клавиш только в определенных программах или окнах.
* Добавлена возможность назначать действия на пустые клавиши. Ранее это было невозможно, или срабатывание зависело от раскладки клавиатуры и не выполнялось на немецких, французских и подобных раскладках, использующих диакритические знаки и/или специальные символы.
* Полностью переписано и оптимизировано клавишное ядро.
1.0 сборка 192 (19 ноября 2008)
* Исправлена ошибка с зависанием программы при нажатии Alt (для выхода в главное меню программы), которая возникала на некоторых ОС.
* Исправлена ошибка позиционирования элементов управления при первом запуске программы.
* Главное меню программы приняло Виста стиль.
1.0 сборка 108 (5 мая 2008)
Выпущена первая релизная версия программы Key Remapper (версия 1.0).
Источник
Key Remapper
Программа переназначения клавиш клавиатуры, кнопок мыши и прокрутки колеса Key Remapper позволяет:
Переназначать клавиши клавиатуры, нажатия кнопок мыши и прокрутку колеса мыши новыми значениями с возможностью задавать не присутствующие на клавиатуре клавиши и кнопки мыши. Например, клавишу CapsLock можно заменить на «Среднюю кнопку мыши», F11 на «Прокрутку колеса мыши вниз», F12 на Win, Browser Home или «Кнопку мыши X2» (которые могут физически отсутствовать на устройствах ввода).
Производить обратную замену клавиш и кнопок мыши, т.е. виртуально менять их функциональное назначение. К примеру, можно виртуально поменять местами правый Shift и Enter, «Среднюю кнопку мыши» и левый Shift.
Заменять определенные клавиши или кнопки мыши комбинациями клавиш или кнопок мыши с модификаторами. Например, можно установить на нажатие клавиши на мультимедийной клавиатуре Browser Forward — комбинацию Alt+Shift+Esc (быстрое переключение программ), на кнопку мыши X1 установить комбинацию Ctrl+C (скопировать), на правый Alt установить комбинацию Ctrl+«Левая кнопка мыши».
Эмулировать двойной клик кнопок мыши или двойное нажатие клавиш клавиатуры с возможностью задавать задержку между нажатиями (двойной клик с задержкой).
Блокировать (отключать) клавиши клавиатуры, кнопки мыши, прокрутку колеса мыши и их комбинации с клавишами модификаторами.
Ограничивать действие переназначений и блокировок определенными программами и окнами. Например, можно определить, чтобы замена кнопки мыши X1 на клавишу «Пробел» осуществлялась только в программе «A» и нигде больше. Или, чтобы клавиша NumLock заменялась на комбинацию Ctrl+C+C (двойное нажатие C) везде, кроме программы, в заголовке окна которой есть слово «B».
Создавать и быстро (в два клика мышью) переключать профили наборов клавиш.
При этом программа не производит никаких изменений скан-кодов в системном реестре и не требует перезагрузки компьютера, чтобы замены клавиш вступили в силу.
С помощью Key Remapper возможно переназначать практически любые клавиши и кнопки мыши.
Снимки экрана
Как пользоваться программой
Скачивание и установка программы Key Remapper
Для работы с программой необходимо скачать установочный дистрибутив и затем запустить его. Начнется установка, после которой программа будет готова к использованию. После запуска программы на экране появится окно, показанное на рисунке:
Работа с программой
В верхней части экрана расположен выпадающий список выбора профиля и кнопки для работы с ними. Рядом находится кнопка «Пауза», которая позволяет временно отключать программу. Ниже находится основная область, в которой определяются замены и блокировки клавиш.
Профили
Для определенных программ и целей требуются разные наборы клавиш, поэтому в программе предусмотрены профили, с помощью которых можно создавать наборы различных замен и соответствий клавиш, которые можно настраивать и по необходимости быстро переключать. Их можно создавать (кнопка «Добавить новый» ), переименовывать (кнопка «Переименовать»
) и удалять (кнопка «Удалить»
).
При создании профиля появляется окно, в котором необходимо ввести имя профиля и выбрать, будет ли новый профиль заполнен данными текущего или нет.
Переключать созданные профили можно с помощью выпадающего списка или через контекстное меню, вызываемое правой кнопкой мыши на значке программы в панели задач.
Определение, замена и блокировка
Для замены одной клавиши на другую необходимо определить клавишу или кнопку мыши, которая будет физически нажиматься и клавишу, которая будет передана системе, как нажатая:
Чтобы определить замену клавиши, кнопки мыши или прокрутки колеса, произведите двойной щелчок мышью на строке «(дважды кликните, чтобы добавить)». Эту операцию можно также выполнить посредством клавиши Insert или с помощью контекстного меню:
Появится окно, показанное на рисунке:
При появлении этого окна, фокус автоматически переходит на определение нажимаемой клавиши/кнопки мыши.
Нажмите требуемую клавишу, кнопку мыши (для определения левой кнопки мыши — удерживайте клавишу Ctrl или любой другой модификатор) или прокрутите колесо мыши и выберите, что требуется сделать: заменить на другую клавишу или комбинацию или заблокировать?
Если требуется определить новое значение клавиши, установите курсор в поле ввода под флажком «Заменить на клавишу, кнопку мыши или комбинацию» и нажмите на клавиатуре требуемую клавишу или комбинацию (удерживая клавиши модификаторы Alt, Ctrl, Shift и/или Win нажмите основную клавишу). Если на клавиатуре нет соответствующих клавиш, то их можно определить, выбрав основную клавишу из списка. Если требуется задать клавиши модификаторы, поставьте напротив их наименований галочки. Если необходимо нажать кнопку мыши или повернуть колесо мыши, нажмите их или выберите в выпадающем списке действие, начинающееся с «Мышь…». Например: «Мышь — нажать правую кнопку«, «Мышь — повернуть колесо вверх» и т.п.
Если требуется заблокировать клавишу, то выберите флажок «Заблокировать». Если флажок «Полная блокировка» не установлен то простое нажатие клавиши будет блокироваться, но при нажатых модификаторах (Ctrl, Shift и т.п.) клавиша блокироваться не будет. Если флажок установлен, произойдет полная блокировка. Например, если заблокировать клавишу «A» и не установить флажок «Полная блокировка», то комбинация Ctrl+A — будет работать. Но если полную блокировку включить — не будет.
По окончании определения нажмите кнопку «ОK».
Если программа не стоит в режиме «Пауза», то замена уже будет работать.
Если требуется виртуально поменять клавиши и/или кнопки мыши местами, то необходимо провести две замены клавиш — одну на другую и наоборот.
Важно отметить, что на одну клавишу нельзя поставить два и более действия замены или блокировки. Если такое происходит, то выполняется то, которое находится выше в списке. Если одно действие находится в папке, а другое на эту же клавишу находится ниже ее, то будет выполнено действие из папки.
Работа с заменами и блокировками
Программа позволяет структурировать замены и блокировки в папках, которые можно создавать с помощью комбинации клавиш Ctrl+Insert или через контекстное меню — «Вставить папку».
Вы можете свободно перемещать действия и папки просто перетаскиванием мыши. Если в начале перетаскивания нажата клавиша Ctrl, то действие или папка копируются. Также предусмотрены привычные функции вырезания, копирования, вставки и удаления.
Если необходимо временно отключить какую-либо замену или блокировку, или даже всю папку, можно воспользоваться клавишей «Пробел» или контекстным меню — «Отключить…». Для включения необходимо повторить операцию.
Источник
- Remove From My Forums
-
Question
-
Hi Igor and everyone
The following program below runs successfully except that
printf(«*%c», ((KBDLLHOOKSTRUCT*)lParam)->vkCode); in [Q1]
prints everything in capital letters. I could add 32 to the
parameter to get small letters thought it is not really
desirable! How would you do it? Any comment on what I have
done wrong would be wellcome.
Regards
Chong
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++#include «stdafx.h»
#include <stdio.h>
#include <Windows.h>
//#include <numeric>
#include <Winuser.h>using namespace std;
HHOOK hHock = NULL;//global
LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam)
{
if (nCode<0) return CallNextHookEx(hHock , nCode ,wParam , lParam);if (wParam==WM_KEYDOWN){
[Q1] printf(«*%c», ((KBDLLHOOKSTRUCT*)lParam)->vkCode);
}return CallNextHookEx(hHock , nCode ,wParam , lParam);//CallNextHookEx
//passes the hook information to the next hook procedure in the
//current hook chain. A hook procedure can call this function either
//before or after processing the hook information. Hook procedures
//are installed in chains for particular hook types. CallNextHookEx
//calls the next hook in the chain. The meaning of the return value
//depends on the hook type. See the descriptions of the individual
//hook procedures.
}int main()
{
MSG msg;hHock = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc , NULL,0);
while(!GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
UnhookWindowsHookEx(hHock);
}
Answers
-
Look up the tolower() function in your reference.
-
Marked as answer by
Tuesday, January 6, 2015 8:04 PM
-
Marked as answer by
-
On 1/8/2015 10:51 AM, «chong kyong kim» wrote:
Hi Barry, Simon, Igor and everyone
The following program hooks the keyboard. It compiles and runs, but
there is an error in [Q2]. SetWindowsHookEx() returns NULL, can not
install hook. It gives «GetLastError():1428:Cannot set nonlocal hook
without a module handle». How can I get it right?Originally, you were installing a low-level hook, WH_KEYBOARD_LL. The hook proc in this case is being called within your process.
Now, you are installing WH_KEYBOARD hook. The hook proc for this (and most other hooks, except for the two _LL ones) must be housed in a DLL. That DLL gets loaded into every process in the system, and the hook proc is called in the context of those processes,
on the same thread that receives the keystroke. The third parameter to SetWindowsHookEx must be an HINSTANCE (or HMODULE — the two are interchangeable) of that DLL. You would also need some inter-process communication mechanism to have the hook proc communicate
back to your application.This program is a part of the example in :
msdn.microsoft.com/en-us/library/windows/desktop/ms644960(v=vs.85).aspxThat example installs a local hook, just for the calling thread — observe GetCurrentThreadId() as the last parameter. You don’t need a separate DLL for that — but of course, you would only see keystrokes for windows created by your own thread, which
is kind of pointless (you can see those keystrokes in your own message pump anyway).
Igor Tandetnik
-
Marked as answer by
chong kyong kim
Thursday, January 8, 2015 5:24 PM
-
Marked as answer by
-
On 1/8/2015 3:13 PM, «chong kyong kim» wrote:
The program runs but only the created window responds to key strokes (i.e. WindowProc gets invoked but not KeyboardProc).
I bet KeyboardProc does get invoked. It’s just that the call to UpdateWindow immediately erases the text printed with TextOut. Just printf to the console, don’t play these TextOut games.
Unless you know precisely what you are doing, all painting should be done within the window procedure, in response to WM_PAINT message.
Igor Tandetnik
-
Marked as answer by
chong kyong kim
Friday, January 9, 2015 12:05 AM
-
Marked as answer by
-
Hi Simon
I will try the DLL method tomorrow. I need a break. I’ve been working on this all day long. My hook is global but limited to the current process and the hook type is WH_KEYBOARD_LL. So at least it does not meet the rule 2 of yours. The program
runs but only the created window responds to key strokes (i.e. WindowProc gets invoked but not KeyboardProc).Regards
Chong
If you want the hook to apply to only the current process (well technically a thread within the current process) then you don’t need the DLL — but you do have to pass a valid threadID that belongs to the current process to SetWindowsHookEx. Your were
complaining earlier that you failed to set the hook when you attempted to set a global hook (a global hook may not have been your intent, in which case my DLL advice was misdirected).-
Marked as answer by
chong kyong kim
Friday, January 9, 2015 12:05 AM
-
Marked as answer by
-
0
0
Hi Igor and everyone
I have put the following(SetWindowsHookEx(..) failes):
hook = SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)msghook,
GetModuleHandle(NULL),// hInst,
0);
if (hook==NULL){
printf(«error: %dn»,GetLastError());
FILE *fp; char dest[100000];
fopen_s(&fp,»jin.txt»,»w»);
_itoa_s(GetLastError(),dest,100000,10);
fwrite(dest,sizeof(char),100000, fp);
}‘jin.txt’ shows an unreadable string «0»
Can you help me please.
Regards
Chong-
Edited by
chong kyong kim
Tuesday, January 13, 2015 2:13 PM -
Marked as answer by
chong kyong kim
Tuesday, January 13, 2015 4:21 PM
-
Edited by
-
On 1/13/2015 9:05 AM, «chong kyong kim» wrote:
GetModuleHandle(NULL),// hInst,
GetModuleHandle(NULL) gives you the handle of the hosting EXE, not the DLL. Whereas SetWindowsHookEx expects a DLL handle.
‘jin.txt’ shows an unreadable string «0»
What did you expect? The first char is ‘0’ — the value returned by GetLastError. The reset is random garbage, since you are writing a buffer that you’ve never initialized.
Read about fprintf in your favorite C textbook.
Igor Tandetnik
-
Marked as answer by
chong kyong kim
Tuesday, January 13, 2015 6:01 PM
-
Marked as answer by
-
On 1/14/2015 7:59 AM, «chong kyong kim» wrote:
I have put the following in msghook:
// FILE *fp;
fopen_s(&fp,»chong.txt»,»w»);
fprintf_s( fp, «%s%c», «This is chong kim»,’n’ );
fclose(fp);
The application crashes pointing to fprintf_s as the cause (Expression:(str!=NULL)). Could
you please tell me why!Likely, fopen_s failed and fp is NULL.
Igor Tandetnik
-
Marked as answer by
chong kyong kim
Wednesday, January 14, 2015 3:04 PM
-
Marked as answer by
-
On 1/15/2015 12:37 PM, «chong kyong kim» wrote:
I have put the following in msghook (I want to print a key input):
if(msg->message == WM_CHAR){
_itoa_s(wParam,vkCode,sizeof(vkCode),10);For GetMsgProc callback, wParam «specifies whether the message has been removed from the queue. This parameter can be one of the following values: PM_NOREMOVE, PM_REMOVE». I doubt that’s what you want to print.
You know enough to use msg->message — how come you don’t also know enough to use msg->wParam?
Igor Tandetnik
-
Marked as answer by
chong kyong kim
Thursday, January 15, 2015 6:03 PM
-
Marked as answer by
Недавно, когда я пробовал апплеты консоли и сочетания клавиш, мне нужно было использовать операцию прослушивания событий клавиатуры. Затем я проверил соответствующие материалы и обнаружил, что модуль клавиатуры больше подходит для моих текущих потребностей. Я выскажу свое собственное мнение здесь и запишу, кстати. Пометь. Если у вас есть следующие вопросы или вы хотите понять, как работает клавиатура Python, эта статья для вас
Как использовать Python для реализации функции мониторинга клавиатуры
Как нажать одну клавишу для автоматического выполнения нескольких клавиш
Как автоматически нажимать клавиши
Как использовать Python для перемещения вверх и вниз с помощью клавиш со стрелками
Python реализует функцию нажатия клавиши для выполнения функции
Пожалуйста, не используйте его в каких-либо незаконных целях, только для изучения и исследования, если какие-либо обязанности, вытекающие из этого, несете вы, это не имеет никакого отношения к этой статье и автору!
оглавление
Установите модуль клавиатуры
Символьные параметры ключа:
Общий метод
send()
press()
release()
wait()
add_hotkey()
record()
play()
hook()
KeyboardEvent()
Больше способов
End
Установите модуль клавиатуры
pip install keyboard
Символьные параметры ключа:
Ключ символа:
'1'
'a'
......Подождите
Клавиши управления:
'alt'
'alt gr'
'ctrl'
'left alt'
'left ctrl'
'left shift'
'left windows'
'right alt'
'right ctrl'
'right shift'
'right windows'
'shift'
'windows'
'enter'
'esc'
'f1'
'f2'
......Подождите
Клавиши со стрелками:
'up'
'down'
'left'
'right'
......
Комбинация клавиш:
'ctrl'+'alt'+'a'
......Подождите
Используйте следующий код, чтобы получить строковую строку всех ключей через клавиши консоли.
import keyboard
def abc(x):
print(x)
if __name__ == '__main__':
keyboard.hook(abc)
keyboard.wait()
Результат выполнения (этим методом также можно добиться эффекта мониторинга клавиатуры)
Общий метод
send()
Используется для отправки событий сочетания клавиш в ОС, чтобы операционная система выполняла соответствующие сочетания клавиш и поддерживала многоступенчатые операции
Например:
import keyboard
keyboard.send('windows+r')
keyboard.send('windows+r,enter')
Отправить в систему сочетание клавиш windows + r
Многоступенчатая операция, отправьте в систему сочетание клавиш windows + r, а затем отправьте клавишу ввода
press()
Нажмите горячую клавишу
Например:
import keyboard
keyboard.press('a')
release()
Отпустите горячую клавишу, обычно используемую в сочетании с press (), или напрямую используйте send ()
Например:
import keyboard
keyboard.press('a')
keyboard.release('a')
wait()
Используется для отслеживания того, является ли текущая кнопка требуемой кнопкой, в противном случае она будет продолжать отслеживать, пока не станет требуемой кнопкой.
Например:
import keyboard
print(1)
keyboard.wait('q')
print(2)
keyboard.wait('w')
print(3)
Приведенный выше код переходит в состояние мониторинга после вывода 1, если не будет нажата клавиша q на клавиатуре, оператор print (2) будет продолжать выполняться, в противном случае он всегда будет в состоянии мониторинга клавиш клавиатуры и не будет продолжать выполнять следующий код
add_hotkey()
Используется для установки кнопки, обычно используется в сочетании с wait (), эффект цикла может быть достигнут с помощью мониторинга нулевого значения wait (). Функция может передавать параметры. Примеры с параметрами см. В примере метода record ().
Например:
import keyboard
def test1():
print("Is 1")
def test2():
print("Is 2")
if __name__ == '__main__':
keyboard.add_hotkey('q',test1)
keyboard.add_hotkey('ctrl+1',test2)
keyboard.wait()
Определите две функции test1 и test2 соответственно
Реализуйте функцию сочетания клавиш, когда мы нажимаем клавишу q, выполняем функцию test1 для вывода Is 1, а когда мы нажимаем комбинированную клавишу Ctrl + 1, выполняем функцию test2 для вывода Is 2 для достижения эффекта сочетания клавиш
record()
Этот метод используется для записи событий клавиатуры, а возвращаемое значение представляет собой список событий. Если вы добавите к нему параметр до, вы можете настроить прекращение прослушивания при нажатии клавиши, аналогично методу wait ()
Например:
import keyboard
def test(x):
print("My name is %s" % x)
keyboard.add_hotkey('q',test,args=('Tom',))
rec = keyboard.record(until='esc')
print(rec)
Когда нажата клавиша q, выводится My name is Tom, а затем метод record () запишет клавиатуру, сохранит ее как список, вернет список и передаст его переменной rec.
play()
Повторять записанную операцию, как правило, в сочетании с record (), чаще всего используется один из параметров
speed_factor = 1.0 # Коэффициент скорости, который контролирует скорость повторения, можно оставить пустым, по умолчанию 1.0
Пример:
import keyboard
def tests():
print('test')
keyboard.add_hotkey('q',tests)
re = keyboard.record(until='esc')
keyboard.play(re)
record записывает, сколько раз была нажата клавиша q выше, и помещает его в переменную re в виде списка, а затем метод play () повторяет операцию в списке re, а скорость повторения определяется коэффициентом скорости.
hook()
Свяжите все ключевые события, пока есть нажатие / отпускание клавиши, это запустит функцию
import keyboard
def abc(x):
print(x)
if __name__ == '__main__':
keyboard.hook(abc)
keyboard.wait()
Независимо от того, какая кнопка нажата, запускается функция abc и выполняется функция abc.
KeyboardEvent()
Три обычно используемых параметра ключевых событий следующие:
event_type: тип клавиши нажата или вверх (вниз / вверх)
scan_code: номер кнопки, каждой кнопке соответствует номер, значение кнопки
name: название кнопки
Например:
import keyboard
def test(x):
a = keyboard.KeyboardEvent('down',28,'enter')
if x.event_type == 'down' and x.name == 'enter':
print ("Вы нажали клавишу ввода")
keyboard.hook(test)
keyboard.wait()
Значение кнопки ввода — 28. Если вы не знаете значение кнопки, вы можете использовать ловушку для привязки события и использовать x.scan_code для вывода кода следующим образом:
import keyboard
def test(x):
print(x.scan_code)
keyboard.hook(test)
keyboard.wait()
Больше способов
Выше приведены несколько распространенных методов. Чтобы узнать о других методах, перейдите по ссылке ниже.
https://github.com/boppreh/keyboard#api
Справочная статья:
https://github.com/boppreh/keyboard/blob/master/README.md
https://www.jianshu.com/p/8e508c6a05ce
End
——————————————————————-
library keyproc;
uses
SysUtils,
Windows,
Messages;
const
MMFName: PChar = ‘KeyMMF’;
type
PGlobalDLLData = ^TGlobalDLLData;
TGlobalDLLData = packed record
SysHook: HWND;
MyAppWnd: HWND;
end;
var
GlobalData: PGlobalDLLData;
MMFHandle: THandle;
WM_MYKEYHOOK: Cardinal;
a:integer;
function KeyboardProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
AppWnd: HWND; // дескриптор приложения, в котором произошло нажатие клавишы
begin
if code < 0 then
begin
Result:= CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
Exit;
end;
if (Code = HC_ACTION) and (((lParam shr 16) and KF_UP) = 0)
then SendMessage(GlobalData^.MyAppWnd, WM_MYKEYHOOK, wParam, AppWnd);
CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
Result:= 0;
end;
{Процедура установки HOOK-а}
procedure hook(switch : Boolean; hMainProg: HWND) export; stdcall;
begin
if switch=true then
begin
{Устанавливаю HOOK, если он не установлен (switch=true). }
GlobalData^.SysHook := SetWindowsHookEx(WH_keyboard, @KeyboardProc, HInstance, 0);
GlobalData^.MyAppWnd:= hMainProg;
if GlobalData^.SysHook <> 0 then a:=1
//MessageBox(0, ‘KEYBOARD HOOK установлен !’, ‘Message from keyhook.dll’, 0)
else a:=0;
// MessageBox(0, ‘HOOK установить не удалось !’, ‘Message from keyhook.dll’, 0);
end
else
begin
{Удаляю функцию-фильтр, если она установлена (т.е. switch=false). }
if UnhookWindowsHookEx(GlobalData^.SysHook) then a:=1
// MessageBox(0, ‘HOOK снят !’, ‘Message from keyhook.dll’, 0)
else a:=1;
// MessageBox(0, ‘HOOK снять не удалось !’, ‘Message from keyhook.dll’, 0);
end;
end;
procedure OpenGlobalData();
begin
{регестрируем свой тип сообщения в системе}
WM_MYKEYHOOK:= RegisterWindowMessage(‘WM_MYKEYHOOK’);
{получаем объект файлового отображения}
MMFHandle:= CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, SizeOf(TGlobalDLLData), MMFName);
if MMFHandle = 0 then
begin
//MessageBox(0, ‘Can»t create FileMapping’, ‘Message from keyhook.dll’, 0);
Exit;
end;
{отображаем глобальные данные на АП вызывающего процесса и получаем указатель
на начало выделенного пространства}
GlobalData:= MapViewOfFile(MMFHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TGlobalDLLData));
if GlobalData = nil then
begin
CloseHandle(MMFHandle);
MessageBox(0, ‘Can»t make MapViewOfFile’, ‘Message from keyhook.dll’, 0);
Exit;
end;
end;
procedure CloseGlobalData();
begin
UnmapViewOfFile(GlobalData);
CloseHandle(MMFHandle);
end;
procedure DLLEntryPoint(dwReason: DWord); stdcall;
begin
case dwReason of
DLL_PROCESS_ATTACH: OpenGlobalData;
DLL_PROCESS_DETACH: CloseGlobalData;
end;
end;
exports hook;
begin
//MessageBox(0, PChar(Application.ExeName), ‘Message from keyhook.dll’, 0);
{назначим поцедуру переменной DLLProc}
DLLProc:= @DLLEntryPoint;
{вызываем назначенную процедуру для отражения факта присоединения данной
библиотеки к процессу}
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.