Utilidad de Windows para representar qué tecla estoy presionando en la pantalla [cerrado]

52

Estoy dando capacitación a un gran grupo de personas de forma remota y cubriré una serie de teclas de acceso directo de aplicaciones.

He visto la visualización en pantalla de MousePose de las pulsaciones de teclas; ¿Hay un producto similar para Windows?

Captura de pantalla de MousePose

Las otras características de MousePose (punteros de mouse sofisticados, etc.) no son realmente útiles para mí, solo la OSD de las pulsaciones de teclas.

richardtallent
fuente

Respuestas:

36

KeyPosé es una alternativa gratuita a MousePosé para Windows. Puedes verlo en acción en el screencast .

Aquí hay una captura de pantalla de muestra:

texto alternativo

John T
fuente
@richard eres más que bienvenido!
John T
44
Creo que tiene algunos problemas. No puede cambiar la posición donde muestra las teclas, a veces la zona gris sigue apareciendo incluso si no está presionando una tecla, tampoco se muestra la tecla ganar / super. Las combinaciones que involucran más de dos teclas presionadas, como ctrl + alt + c, se muestran de una manera extraña, como primero CTRL, luego ALT (supongo que debería mostrar CTRL + ALT) y finalmente CTRL + ALT + C. Es mejor que nada, pero creo que hay mejores opciones.
Alter Lagos
No registra las teclas Tab por alguna razón ...
laggingreflex
No registra las combinaciones de WIN, no mostró CTRL + SHIFT + ESC. Meh
Ev0oD
1
Use Carnac a continuación. Probé ambos y Carnac te ofrece varias opciones visuales. github.com/bfritscher/carnac/releases/tag/v3-beta
Kai Noack
13

Recomiendo encarecidamente Carnac . Es un proyecto gratuito alojado en GitHub.

Una utilidad de registro y presentación de teclado para presentaciones, screencasts y para ayudarlo a convertirse en un mejor usuario del teclado.

Está bien ejecutado, bien diseñado y también de código abierto en GitHub .

Captura de pantalla

Encuentre una versión de fork con correcciones y visualización de la entrada del mouse aquí: https://github.com/bfritscher/carnac/releases/tag/v3-beta

rburte
fuente
Interesante, pero no tan bonito renderizado como KeyPosé.
Basj
La página del proyecto solo proporciona un carnac.applicationarchivo, el video de youtube youtube.com/watch?v=qSUDfzUkwnc muestra a Carnac.exe. Justo después me di cuenta de que puedo iniciar carnac.applicationen Windows y descarga e instala el programa. También encontré el archivo
Kai Noack
2
@Basj Carnac es mucho más "hermoso" que KeyPosé (que solo muestra las letras como texto sin formato). Con Carnac puede cambiar la apariencia de las teclas que se muestran (tamaño de fuente, opacidad, colores).
Kai Noack
@KaiNoack Quiero decir que el estilo predeterminado de Carnac no es tan elegante / minimalista como Keyposé. El diseño predeterminado debería mejorarse;)
Basj
¿Cómo puedo cambiar la posición del área de visualización de pulsaciones de teclas? Parece que puedo encontrar alguna documentación.
jdhao
10

Me gustaría compartir mi herramienta: keycastow.

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

ingrese la descripción de la imagen aquí

arroyo hong
fuente
1
Gran cosa! También LICECap también es genial, no sabía uno :)
LogicDaemon
@brookhong, ¿qué usaste para crear el giff animado?
Ricardo C
@RicardoC Es licecap, cockos.com/licecap
arroyo hong
Microsoft Security Essentials clasifica esto como una amenaza. ¡Oh bien!
rath
1
Esta herramienta no se puede descargar como un binario; tienes que construirlo tú mismo, lo cual para mí es un problema porque no tengo permiso.
Lqueryvg
5

He escrito un script AutoHotkey_L para este propósito.

Para ejecutarlo, use AutoHotkey_L ( dl directo ), es FOSS. Además, con AutoHotkey puede compilar script a EXE (simplemente ).Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe

Puede mostrar teclas presionadas como OSD o información sobre herramientas estándar cerca del cursor del mouse. Además, muestra los clics del botón del mouse y el desplazamiento de la rueda.

(tenga en cuenta que el marco y el desenfoque se realizan con fines ilustrativos, el script solo muestra texto sin molestias) Captura de pantalla

Aquí está el script (copiar y pegar en el bloc de notas, guardar como 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, {LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}
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
}
}
LogicDaemon
fuente
Traté de iniciar "DisplayPressedKeyOnScreen.exe" en Win7 de 64 bits. Recibo el mensaje de error Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.¿Es el archivo exe un archivo independiente? ¿O tengo que instalar AutoHotkey de antemano?
Kai Noack
@EchtEinfachTV Estoy seguro de que es independiente. Además, acabo de descargarlo y ejecutarlo con éxito en Win 8.1 de 32 bits. ¿Podemos comparar MD5? El mío es d788516439ed743b3553eb3ae7b9082c, y el tamaño del archivo es de 332 288 bytes.
LogicDaemon
El archivo que descargué de su enlace anterior me muestra MD5: D788516439ED743B3553EB3AE7B9082C y tamaño de archivo 332 288. Por lo tanto, debe ser exactamente el mismo archivo. También es extraño que después del mensaje de error en Windows 7, apareció el escáner de virus Panda Cloud, moviendo el archivo 'malicioso' a la cuarentena.
Kai Noack
@EchtEinfachTV entonces aparentemente el antivirus le negó el acceso al archivo cuando intentó iniciarlo, por eso recibió el mensaje de Windows de que no puede acceder a él. Aunque no sé por qué se bloquea, puede verificar: es un binario estándar de autohotkey unido con fuente de script de texto sin formato (pero reformateado).
LogicDaemon
1
@Amina ty, supongo que es un movimiento accidental de las carpetas de Dropbox por mí. Arreglará mi publicación.
LogicDaemon
2

Puede usar el teclado en pantalla para mostrar las pulsaciones de teclas que vienen con Windows. Cuando escribe en su teclado físico, en la pantalla se resalta dicha tecla.

Nuez sin fondos
fuente
1
Gracias, ya lo intenté, pero la única tecla modificadora que destaca es la tecla Shift.
richardtallent
En Windows 7, escriba "teclado" en el cuadro de búsqueda del menú de inicio y seleccione "Teclado en pantalla"
xhafan
No es para mí (gana 10).
NounVerber
1

Presentation Pointer es una mejor alternativa a MousePosé para Windows. Proporciona efecto de puntero, efecto de clics del mouse, pulsaciones de teclas e incluso le permite dibujar libremente en la pantalla pero no bloquear la pantalla. Esa es realmente una ventaja del programa.

Garvey
fuente
1
... actualmente 30 USD.
miroxlav
1

PointerFocus puede mostrar sus pulsaciones de teclas.

Dan
fuente
3
actualmente 12.50 USD
miroxlav
Desafortunadamente, no puede personalizar / ignorar ciertas teclas.
Basj
1

He escrito una pequeña aplicación de Windows llamada QiPress . Tiene controles para cambiar la apariencia, mostrar o ignorar ciertos grupos de teclas, incluso agregar texto estático (su propio nombre o nombre de la empresa, por ejemplo). El posicionamiento es posible deshabilitando el clic y arrastrando la ventana emergente. Hay otras características que probablemente no necesite, pero cubre principalmente lo que desea.

aalapshah
fuente
3
actualmente 30 USD
miroxlav
Para aclarar sobre las versiones: Versión gratuita: Para uso personal, no comercial. Algunas funciones avanzadas deshabilitadas (como teclados de varios idiomas, monitores múltiples, pantalla de joystick, etc.). Sin limitación de tiempo. Versión de pago: para todos los usos. Todas las funciones avanzadas habilitadas. Sin limitación de tiempo.
aalapshah
0

Puede usar PassMark KeyboardTest (evaluación gratuita de 30 días, luego US $ 24.00 para comprar).

ingrese la descripción de la imagen aquí

FYI:

Franck Dernoncourt
fuente