Утилита Windows для отображения, какую клавишу я нажимаю на экране

56362
richardtallent

Я дистанционно обучаю большую группу людей и расскажу о нескольких сочетаниях клавиш приложений.

Я видел на экране MousePose отображение нажатий клавиш; Есть ли аналогичный продукт для Windows?

Скриншот MousePose

Другие функции MousePose (причудливые указатели мыши и т. Д.) Не очень полезны для меня, просто OSD нажатий клавиш.

47

9 ответов на вопрос

34
John T

KeyPosé - это бесплатная альтернатива MousePosé для Windows. Вы можете увидеть это в действии на экране .

Вот пример скриншота:

альтернативный текст

@ Ричард, добро пожаловать! John T 14 лет назад 0
Я думаю, что это имеет некоторые проблемы. Вы не можете изменить положение, в котором вы отображаете клавиши, иногда серая зона продолжает отображаться, даже если вы не нажимаете клавишу, также не отображается клавиша win / super. Комбинации, в которых задействовано более двух нажатых клавиш, например ctrl + alt + c, отображаются странным образом, например сначала CTRL, затем ALT (я полагаю, он должен отображать CTRL + ALT) и, наконец, CTRL + ALT + C. Лучше, чем ничего, но я думаю, что есть лучшие варианты. Alter Lagos 10 лет назад 4
По какой-то причине не регистрирует клавиши Tab ... laggingreflex 8 лет назад 0
Не регистрирует WIN комбинатоины, не показывал CTRL + SHIFT + ESC. Мех. Ev0oD 8 лет назад 0
Эта программа не работает для меня. NounVerber 7 лет назад 0
Используйте Карнак ниже. Я протестировал оба, и Карнак дает вам различные визуальные возможности. https://github.com/bfritscher/carnac/releases/tag/v3-beta Kai Noack 6 лет назад 1
KeyPosé никак не настраивается и отображает только последний набранный символ (было бы неплохо посмотреть историю). Также связанный скринкаст требует, чтобы вы загрузили плеер. Lqueryvg 6 лет назад 0
11
rburte

Я очень рекомендую Carnac . Это бесплатный проект, размещенный на GitHub.

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

Это красиво выполнено, красиво разработано и также с открытым исходным кодом на GitHub .

Screenshot

Найдите релиз форка с исправлениями и визуализацией ввода мышью здесь: https://github.com/bfritscher/carnac/releases/tag/v3-beta

Интересный, но не такой красивый рендеринг, как KeyPosé. Basj 7 лет назад 0
Страница проекта содержит только файл `carnac.application`, а видео на YouTube https://www.youtube.com/watch?v=qSUDfzUkwnc показывает файл` Carnac.exe`. Чуть позже я понял, что могу запустить `carnac.application` в Windows, и он загрузит и установит программу. Я нашел zip / exe также здесь: https://github.com/downloads/Code52/carnac/Carnac.zip Kai Noack 6 лет назад 0
@Basj Carnac гораздо «красивее», чем KeyPosé (который показывает буквы только в виде простого текста). С Carnac вы можете изменить внешний вид отображаемых клавиш (размер шрифта, прозрачность, цвета). Kai Noack 6 лет назад 2
@KaiNoack Я имею в виду стиль Carnac по умолчанию не такой стильный / минималистский, как Keyposé. Дизайн по умолчанию должен быть улучшен;) Basj 6 лет назад 0
10
brook hong

I would like to share my tool -- keycastow.

https://brookhong.github.io/2014/04/28/keycast-on-windows.html

enter image description here

Великая вещь! Кроме того, LICECap тоже отлично, не знал об этом :) LogicDaemon 10 лет назад 1
@brookhong что вы использовали для создания анимированного GIF? Ricardo C 8 лет назад 0
@RicardoC Это вшейник, http://www.cockos.com/licecap/ brook hong 8 лет назад 0
Microsoft Security Essentials классифицирует это как угрозу. Ну что ж! rath 7 лет назад 0
Как и Аваст. Это ложная тревога, поскольку программное обеспечение с открытым исходным кодом, оно не может скрыть трояна. * Однако * выполнение этого делает курсор дрожащим, а ввод с клавиатуры задерживается. FractalSpace 7 лет назад 0
Chrome и Firefox предупреждают меня о https://brookhong.github.io/2014/04/28/keycast-on-windows.html http://imgur.com/a/jcdyB, и страница не загружается если я проигнорирую предупреждение Miserable Variable 7 лет назад 0
Этот инструмент не может быть загружен как двоичный файл; Вы должны построить это самостоятельно, что для меня является проблемой, потому что у меня нет разрешения. Lqueryvg 6 лет назад 1
Я только что скомпилировал и выполнил это и работает хорошо! Это замечательно! Vijay 6 лет назад 0
5
LogicDaemon

I've written an AutoHotkey_L script for this purpose.

To run it, use AutoHotkey_L (direct dl), it's FOSS. Also, with AutoHotkey you can compile script to EXE (simply Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe ).

It can display pressed keys OSD-like or standard Tool-tip near mouse cursor. Also, it displays mouse button clicks and wheel scrolling.

(note that frame & blurring is done for illustration purposes, the script itself only displays text w/o any disturbances) Screenshot

Heres's the script (copy and paste to notepad, save as DisplayPressedKeysOnScreen.ahk):

#NoEnv #SingleInstance force #InstallKeybdHook Global KeyStates, MouseState, ClickCount, IdleDelay, LargeDisplay IdleDelay=3000 LargeDisplay=1 ; 0 = Tooltip near mouse pointer ; 1 = Big pane at screen bottom If LargeDisplay { ;Initializing GUI ;modded func originated from http://www.autohotkey.com/board/topic/8190-osd-function/ SysGet Monitor, Monitor GUIx := MonitorLeft GUIw := MonitorRight - MonitorLeft GUIh := (MonitorBottom - MonitorTop) * GUIw * 0.00003 If (GUIh > ((MonitorBottom - MonitorTop) * 0.3)) GUIh := (MonitorBottom - MonitorTop) * 0.3 opacity=230 fname="Tahoma" fsize:=GUIh * 0.65 ; really, pixel = 0.75 point, but with 0.75 lowercase letter with lower part (like "g") get cut fcolor=cccccc bcolor=222222 fformat="600" Gui +LastFound +AlwaysOnTop +ToolWindow -Caption Gui Margin, 0, 0 ;pixels of space to leave at the left/right and top/bottom sides of the window when auto-positioning. Gui Color, ffffff ;changes background color Gui Font, s%fsize% w%fformat%, %fname% ; 0x80 = SS_NOPREFIX -> Ampersand (&) is shown instead of underline one letter for Alt+letter navigation Gui Add, Text, c%bcolor% Center +0x80 w%GUIw% h%GUIh% BackgroundTrans VblkOsdCtrlName, tesT test test Gui Add, Text, c%fcolor% Center +0x80 w%GUIw% h%GUIh% BackgroundTrans VblkOsdCtrlName2 xp-3 yp-3, tesT test test WinSet ExStyle, +0x20 ; WS_EX_TRANSPARENT -> mouse klickthrough WinSet TransColor, ffffff %opacity% } TrayTip %A_ScriptName%, To Exit`, press the Right Windows logo key. Loop { Input SingleKey, L1 V M I B, GetKeyStates() ; IfInString ErrorLevel, EndKey ; CollectedText .= (CollectedText =="" ? "" : " + " ) . SubStr(ErrorLevel, 8) If SingleKey { SingleKeyText= If (SingleKey==Chr(27)) SingleKeyText=Esc Else If (SingleKey==Chr(32)) SingleKeyText=Space If (GetKeyState("LControl", "P") || GetKeyState("RControl", "P")) { If (SingleKey==Chr(10) && EnterPressed) SingleKeyText=Enter Else If (SingleKey >= Chr(1) && SingleKey <= Chr(26)) ; With "M" in Input, Ctrl-A through Ctrl-Z correspond to Chr(1) through Chr(26) SingleKeyText := Chr(Asc("A")-1+Asc(SingleKey)) } Else { If (SingleKey==Chr(10)) SingleKeyText=Enter } If Not SingleKeyText SingleKeyText:=SingleKey ShowKeys(KeyStates . SingleKeyText) ; . (MouseState ? "`n" . MouseState : "") EnterPressed=0 GoSub ClearMouseState } Else { ShowKeys(SubStr(KeyStates, 1, -3) . (MouseState ? " + " . MouseState : "")) } SetTimer TooltipOff, % -IdleDelay } RWin:: ExitApp ~*Enter:: EnterPressed=1 return ~*LButton:: ~*RButton:: ~*MButton:: ~*XButton1:: ~*XButton2:: MouseState := "Mouse " . SubStr(A_ThisHotkey, 3) . " Pressed" MouseTooltip() return ~*WheelDown:: ~*WheelUp:: ~*WheelLeft:: ~*WheelRight:: MouseState := "Mouse " . SubStr(A_ThisHotkey, 3) MouseTooltip() return ~*LButton Up:: ~*RButton Up:: ~*MButton Up:: ~*XButton1 Up:: ~*XButton2 Up:: ; MsgBox %A_PriorHotkey%`n%A_ThisHotkey% If (A_PriorHotkey == SubStr(A_ThisHotkey, 1, -3) && A_TimeSincePriorHotkey < 200) { ClickCount++ Suffix := " Clicked " . ClickCount . "x" } Else { ClickCount:=0 Suffix := " Released" } MouseState := "Mouse " . SubStr(A_ThisHotkey, 3, -3) . Suffix MouseTooltip() return MouseTooltip(){ GetKeyStates() ShowKeys(KeyStates . MouseState) SetTimer ClearMouseState, % -IdleDelay SetTimer TooltipOff, % -IdleDelay } ClearMouseState: MouseState= ClickCount=0 return TooltipOff: If LargeDisplay Gui Hide Else Tooltip return GetKeyStates() { KeyStates := "" . ( GetKeyState("LControl", "P") ? "LControl + " : "" ) . ( GetKeyState("RControl", "P") ? "RControl + " : "" ) . ( GetKeyState("LAlt", "P") ? "LAlt + " : "" ) . ( GetKeyState("RAlt", "P") ? "RAlt + " : "" ) . ( GetKeyState("LShift", "P") ? "LShift + " : "" ) . ( GetKeyState("RShift", "P") ? "RShift + " : "" ) . ( GetKeyState("LWin", "P") ? "LWin + " : "" ) . ( GetKeyState("AppsKey", "P") ? "AppsKey + " : "" ) . ( GetKeyState("F1", "P") ? "F1 + " : "" ) . ( GetKeyState("F2", "P") ? "F2 + " : "" ) . ( GetKeyState("F3", "P") ? "F3 + " : "" ) . ( GetKeyState("F4", "P") ? "F4 + " : "" ) . ( GetKeyState("F5", "P") ? "F5 + " : "" ) . ( GetKeyState("F6", "P") ? "F6 + " : "" ) . ( GetKeyState("F7", "P") ? "F7 + " : "" ) . ( GetKeyState("F8", "P") ? "F8 + " : "" ) . ( GetKeyState("F9", "P") ? "F9 + " : "" ) . ( GetKeyState("F10", "P") ? "F10 + " : "" ) . ( GetKeyState("F11", "P") ? "F11 + " : "" ) . ( GetKeyState("F12", "P") ? "F12 + " : "" ) . ( GetKeyState("Left", "P") ? "Left + " : "" ) . ( GetKeyState("Right", "P") ? "Right + " : "" ) . ( GetKeyState("Up", "P") ? "Up + " : "" ) . ( GetKeyState("Down", "P") ? "Down + " : "" ) . ( GetKeyState("Home", "P") ? "Home + " : "" ) . ( GetKeyState("End", "P") ? "End + " : "" )x . ( GetKeyState("PgUp", "P") ? "PgUp + " : "" ) . ( GetKeyState("PgDn", "P") ? "PgDn + " : "" ) . ( GetKeyState("Del", "P") ? "Del + " : "" ) . ( GetKeyState("Ins", "P") ? "Ins + " : "" ) . ( GetKeyState("BS", "P") ? "BS + " : "" ) . ( GetKeyState("Capslock", "P") ? "Capslock + " : "" ) . ( GetKeyState("Numlock", "P") ? "Numlock + " : "" ) . ( GetKeyState("PrintScreen", "P") ? "PrintScreen + " : "" ) . ( GetKeyState("Pause", "P") ? "Pause + " : "" ) } ShowKeys(text) { If LargeDisplay { Global blkOsdCtrlName, blkOsdCtrlName2, MonitorLeft, MonitorRight, MonitorBottom, MonitorTop, GUIx, GUIy, GUIh CoordMode Mouse, Screen MouseGetPos MouseX, MouseY If ((!GUIy) || (MouseX >= MonitorLeft && MouseX <= MonitorRight && MouseY >= GUIy && MouseY <= (GUIy+GUIh)) ) { If (MouseY < (MonitorTop + (MonitorBottom - MonitorTop) / 2) ) GUIy := MonitorBottom - (MonitorBottom - MonitorTop) * 0.2 Else GUIy := MonitorTop + (MonitorBottom - MonitorTop) * 0.2 } GuiControl Text, blkOsdCtrlName, %text% GuiControl Text, blkOsdCtrlName2, %text% Gui, Show, x%GUIx% y%GUIy% NoActivate } Else { Tooltip % text } } 
Я пытался запустить "DisplayPressedKeyOnScreen.exe" на Win7 64bit. Я получаю сообщение об ошибке «Windows не может получить доступ к указанному устройству, пути или файлу. Возможно, у вас нет соответствующих прав доступа к элементу. Является ли exe-файл автономным? Или мне нужно предварительно установить AutoHotkey? Kai Noack 10 лет назад 0
@EchtEinfachTV Я уверен, что это автономно. Также я только что скачал и успешно запустил его на Win 8.1 32-bit. Можем ли мы сравнить MD5? У меня d788516439ed743b3553eb3ae7b9082c, а размер файла составляет 332 288 байт. LogicDaemon 10 лет назад 0
Файл, который я скачал с вашей [ссылка выше] (https://www.dropbox.com/s/2t69kbj7serro7z/DisplayPressedKeysOnScreen.exe), показывает мне MD5: D788516439ED743B3553EB3AE7B9082C и размер файла 332 288. Таким образом, это должен быть точно такой же файл. Также странно, что после появления сообщения об ошибке в Windows 7 появился вирусный сканер Panda Cloud, который переместил «вредоносный» файл в карантин. Kai Noack 10 лет назад 0
@EchtEinfachTV тогда, по-видимому, антивирус запретил доступ к файлу, когда вы пытались запустить его, поэтому вы получили сообщение Windows, что вы не можете получить к нему доступ. Хотя я не знаю, почему он блокирует, вы можете проверить: это стандартный двоичный файл autohotkey, соединенный с открытым (но переформатированным) исходным кодом скрипта. LogicDaemon 10 лет назад 0
@EchtEinfachTV извините, это не открытый текст. Он включает [mpress] (http://www.matcode.com/mpress.htm), который был включен в AutoHotkey. В любом случае, вы можете загрузить автономный двоичный файл autohotkey ([exe.zip] (http://ahkscript.org/download/ahk-u32.zip)) и запустить его с помощью перетаскивания, просто чтобы увидеть, является ли этот скрипт подойдет вам. Если это так, вы можете сохранить его таким образом (просто создайте ярлык с помощью «« path-to-ahk \ autohotkey.exe »,« path-to-script \ script.ahk »» в поле «Объект») или скомпилируйте его. Вы сами (занимает 1 минута для dl и установить autohotkey и 5 секунд для компиляции). LogicDaemon 10 лет назад 0
Dropbox удалил его. Aminadav Glickshtein 9 лет назад 0
@ Амина, я полагаю, это случайное перемещение папок Dropbox мной. Исправлю мой пост. LogicDaemon 9 лет назад 1
Можно ли изменить этот сценарий AHK, чтобы он отслеживал ввод искусственной клавиатуры, скажем, из приложения WinController для Android? Я просмотрел документы AHK, но ничего не смог найти. Steve Waring 7 лет назад 0
В настоящее время @SteveWaring, чтобы нажать клавишу, использует [Оператор ввода] (https://autohotkey.com/docs/commands/Input.htm), в документах которого говорится: «по умолчанию искусственный ввод также захватывается». Замените «Input SingleKey, L1 VMIB» на «Input SingleKey, L1 VMB», оно должно работать. LogicDaemon 7 лет назад 0
@SteveWaring, также удалите «,« P »» из каждого GetKeyState. Например: «GetKeyState (« LControl »,« P »)» → «GetKeyState (« RControl »)» » LogicDaemon 7 лет назад 0
Есть ли в любом случае сделать это функцией, которая показывает текст, переданный в функцию, чтобы его можно было использовать в моих собственных сценариях, чтобы показать окно действий, которое мой сценарий выполняет на экране? JasonDavis 6 лет назад 0
@JasonDavis на самом деле отображение осуществляется функцией `ShowKeys ()`. Тем не менее, он требует инициализации, он находится в секции автозапуска скрипта внутри блока `If LargeDisplay {…}`. LogicDaemon 6 лет назад 0
2
Unfundednut

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

Спасибо, я уже пробовал, но единственная клавиша-модификатор, которая выделяет это клавиша Shift. richardtallent 14 лет назад 1
В Windows 7 введите «клавиатура» в поле поиска меню «Пуск» и выберите «Экранная клавиатура» xhafan 10 лет назад 0
Это не для меня (победа 10). NounVerber 7 лет назад 0
1
Dan

PointerFocus может отображать нажатия клавиш.

в настоящее время 12,50 долларов США miroxlav 7 лет назад 2
К сожалению, он не может настраивать / игнорировать определенные ключи. Basj 7 лет назад 0
1
Garvey

Presentation Pointer is a best alternative to MousePosé for Windows. It provides Pointer Effect, Mouse Clicks Effect, Keystrokes and even allows you to draw freely on the screen but not lock the screen. That's really an advantage of the program.

... в настоящее время 30 грн. miroxlav 7 лет назад 1
1
aalapshah

I have written a small Windows app called QiPress. It has controls to change the look-n-feel, display or ignore certain key-groups, even add static text (your own name or company name for example). Positioning is possible by disabling click-through and click-dragging the pop-up. There are other features which you probably may not require, but it covers mostly what you want.

в настоящее время 30 долларов США miroxlav 7 лет назад 2
Чтобы уточнить версии: Бесплатная версия: Для личного некоммерческого использования. Некоторые расширенные функции отключены (например, клавиатура на разных языках, несколько мониторов, дисплей джойстика и т. Д.). Нет ограничений по времени. Платная версия: для всех целей. Все расширенные функции включены. Нет ограничений по времени. aalapshah 6 лет назад 0
0
Franck Dernoncourt

Вы можете использовать PassMark KeyboardTest (бесплатная 30-дневная пробная версия, затем 24 доллара США на покупку).

enter image description here

FYI: