Utilitário Windows para processar qual tecla eu estou pressionando na tela [fechado]

52

Estou treinando remotamente um grande grupo de pessoas e abordarei várias teclas de atalho do aplicativo.

Eu vi a exibição de teclas do MousePose na tela; existe um produto semelhante para o Windows?

Captura de tela do MousePose

Os outros recursos do MousePose (ponteiros sofisticados do mouse etc.) não são realmente úteis para mim, apenas o OSD das teclas pressionadas.

richardtallent
fonte

Respostas:

36

O KeyPosé é uma alternativa gratuita ao MousePosé para Windows. Você pode vê-lo em ação no screencast .

Aqui está um exemplo de captura de tela:

texto alternativo

John T
fonte
@richard você é mais que bem-vindo!
John T
4
Eu acho que tem alguns problemas. Você não pode alterar a posição em que exibe as teclas, às vezes a zona cinza continua aparecendo, mesmo que você não esteja pressionando uma tecla, também a tecla win / super não é exibida. Combinações que envolvem mais de duas teclas pressionadas, como ctrl + alt + c, são exibidas de maneira estranha, como primeiro CTRL, depois ALT (suponho que deve exibir CTRL + ALT) e, finalmente, CTRL + ALT + C. É melhor que nada, mas acho que existem melhores opções.
Alter Lagos
Não registra as teclas de tabulação por alguma razão ...
laggingreflex
Não registra combinações WIN, não mostrou CTRL + SHIFT + ESC. Meh.
Ev0oD
11
Use Carnac abaixo. Testei os dois e o Carnac oferece várias opções visuais. github.com/bfritscher/carnac/releases/tag/v3-beta
Kai Noack
13

Eu recomendo Carnac . É um projeto gratuito hospedado no GitHub.

Um utilitário de registro e apresentação de teclado para apresentações, screencasts e para ajudá-lo a se tornar um usuário melhor do teclado.

É bem executado, bem projetado e também de código aberto no GitHub .

Captura de tela

Encontre um release do fork com correções e visualização da entrada do mouse aqui: https://github.com/bfritscher/carnac/releases/tag/v3-beta

rburte
fonte
Renderização interessante, mas não tão bonita quanto KeyPosé.
Basj 5/17
A página do projeto fornece apenas um carnac.applicationarquivo, o vídeo do youtube youtube.com/watch?v=qSUDfzUkwnc mostra a Carnac.exe. Logo depois, percebi que posso iniciar o carnac.applicationWindows e ele baixa e instala o programa. Achei o zip / exe também aqui: github.com/downloads/Code52/carnac/Carnac.zip
Kai Noack
2
@Basj Carnac é muito mais "bonito" que o KeyPosé (que mostra apenas as letras como texto sem formatação). Com o Carnac, você pode alterar a aparência das teclas exibidas (tamanho da fonte, opacidade, cores).
Kai Noack #
@KaiNoack Quero dizer, o estilo padrão do Carnac não é tão elegante / minimalista quanto o Keyposé. O design padrão deve ser aprimorado;)
Basj 19/11
Como posso alterar a posição da área de exibição do pressionamento de tecla? Eu consigo encontrar alguma documentação.
jdhao 19/04
10

Eu gostaria de compartilhar minha ferramenta - keycastow.

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

insira a descrição da imagem aqui

brook hong
fonte
11
Ótima coisa! Também LICECap é muito grande, não sabia sobre um :)
LogicDaemon
@brookhong, o que você usou para criar o giff animado?
Ricardo C
@RicardoC It's licecap, cockos.com/licecap
brook hong
O Microsoft Security Essentials classifica isso como uma ameaça. Ah bem!
Rath
11
Esta ferramenta não pode ser baixada como binária; você tem que construir você mesmo, o que para mim é um problema, porque eu não tenho permissão.
Lqueryvg
5

Eu escrevi um script AutoHotkey_L para esse fim.

Para executá-lo, use AutoHotkey_L ( direct dl ), é FOSS. Além disso, com o AutoHotkey você pode compilar scripts para EXE (simplesmente ).Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe

Ele pode exibir teclas pressionadas, como OSD ou dica de ferramenta padrão, perto do cursor do mouse. Além disso, exibe cliques no botão do mouse e rolagem da roda.

(observe que o quadro e a desfocagem são feitos para fins de ilustração, o próprio script só exibe texto sem quaisquer perturbações) Captura de tela

Aqui está o script (copie e cole no bloco de notas, salve 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
fonte
Tentei iniciar "DisplayPressedKeyOnScreen.exe" no Win7 64bit. Recebo a mensagem de erro Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.O arquivo exe é autônomo? Ou tenho que instalar o AutoHotkey antecipadamente?
Kai Noack
@EchtEinfachTV Tenho certeza de que é independente. Além disso, eu apenas baixei e o iniciei com êxito no Win 8.1 de 32 bits. Podemos comparar o MD5? O meu é d788516439ed743b3553eb3ae7b9082c e o tamanho do arquivo é 332 288 bytes.
LogicDaemon
O arquivo que baixei do seu link acima mostra MD5: D788516439ED743B3553EB3AE7B9082C e tamanho do arquivo 332 288. Portanto, deve ser exatamente o mesmo arquivo. Também é estranho que, após a mensagem de erro no Windows 7, o antivírus Panda Cloud tenha aparecido, movendo o arquivo 'malicioso' para a quarentena.
Kai Noack
O @EchtEinfachTV então parece que o antivírus negou o acesso ao arquivo quando você tentou iniciá-lo, por isso recebeu a mensagem do Windows de que não pode acessá-lo. Embora eu não saiba por que ele bloqueia, você pode verificar: é o binário padrão da autohotkey associado à fonte de script de texto sem formatação (mas reformatada).
LogicDaemon
11
@ Amy Ty, eu acho que é o movimento acidental de pastas dropbox por mim. Corrigirei minha postagem.
LogicDaemon 19/09/2015
2

Você pode usar o teclado na tela para mostrar as teclas pressionadas que acompanham o Windows. Quando você digita no teclado físico, o na tela destaca a tecla.

Unfundednut
fonte
11
Obrigado, eu já tentei isso, mas a única tecla modificadora que destaca é a tecla Shift.
Richardtallent
No Windows 7, digite "teclado" na caixa de pesquisa do menu Iniciar e selecione "On-Screen Keyboard"
xhafan
Não é para mim (vitória 10).
NounVerber 16/10
1

O Presentation Pointer é a melhor alternativa ao MousePosé para Windows. Ele fornece efeito ponteiro, efeito de cliques do mouse, pressionamentos de teclas e até permite desenhar livremente na tela, mas não bloqueá-la. Essa é realmente uma vantagem do programa.

Garvey
fonte
11
... atualmente 30 USD.
miroxlav
1

O PointerFocus pode exibir as teclas digitadas.

Dan
fonte
3
atualmente 12,50 USD
miroxlav 5/17
Infelizmente, ele não pode personalizar / ignorar determinadas chaves.
Basj 5/17
1

Eu escrevi um pequeno aplicativo do Windows chamado QiPress . Possui controles para alterar a aparência, exibir ou ignorar determinados grupos de teclas e até adicionar texto estático (seu próprio nome ou nome da empresa, por exemplo). O posicionamento é possível desativando o clique e arrastando o pop-up. Existem outros recursos que você provavelmente não precisará, mas abrange principalmente o que você deseja.

aalapshah
fonte
3
atualmente 30 USD
miroxlav 05/09
Para esclarecer as versões: Versão gratuita: Para uso pessoal e não comercial. Alguns recursos avançados desabilitados (como teclados de vários idiomas, vários monitores, exibição de joystick etc.). Sem limitação de tempo. Versão paga: Para todos os usos. Todos os recursos avançados ativados. Sem limitação de tempo.
aalapshah
0

Você pode usar o PassMark KeyboardTest (avaliação gratuita de 30 dias e US $ 24,00 para comprar.)

insira a descrição da imagem aqui

PARA SUA INFORMAÇÃO:

Franck Dernoncourt
fonte