Narzędzie Windows do renderowania, który klawisz naciskam na ekranie [zamknięty]

52

Prowadzę szkolenie dużej grupy osób zdalnie i będę obejmował wiele klawiszy skrótu do aplikacji.

Widziałem ekranowe naciśnięcia klawiszy MousePose ; czy istnieje podobny produkt dla systemu Windows?

Zrzut ekranu MousePose

Inne funkcje MousePose (fantazyjne wskaźniki myszy itp.) Nie są dla mnie naprawdę przydatne, tylko OSD naciśnięć klawiszy.

richardtallent
źródło

Odpowiedzi:

36

KeyPosé to darmowa alternatywa dla MousePosé dla Windows. Możesz to zobaczyć w akcji w screencastie .

Oto przykładowy zrzut ekranu:

alternatywny tekst

John T.
źródło
@richard, jesteś więcej niż mile widziany!
John T
4
Myślę, że ma pewne problemy. Nie możesz zmienić pozycji, w której wyświetlasz klawisze, czasami szara strefa pokazuje się nawet, jeśli nie naciskasz klawisza, również klawisz wygrana / super nie jest wyświetlany. Kombinacje, które wymagają naciśnięcia więcej niż dwóch klawiszy, takich jak ctrl + alt + c, są wyświetlane w dziwny sposób, jak najpierw CTRL, potem ALT (przypuszczam, że powinien wyświetlać CTRL + ALT), a na koniec CTRL + ALT + C. Jest lepszy niż nic, ale myślę, że są lepsze opcje.
Alter Lagos
Z jakiegoś powodu nie rejestruje klawiszy Tab ...
laggingreflex
Nie rejestruje kombinacji WIN, nie wyświetlał CTRL + SHIFT + ESC. Meh
Ev0oD
1
Użyj Carnac poniżej. Przetestowałem oba, a Carnac daje różne opcje wizualne. github.com/bfritscher/carnac/releases/tag/v3-beta
Kai Noack
13

Bardzo polecam Carnac . To darmowy projekt hostowany na GitHub.

Narzędzie do rejestrowania i prezentacji za pomocą klawiatury do prezentacji, screencastów i aby pomóc Ci stać się lepszym użytkownikiem klawiatury.

Jest ładnie wykonany, ładnie zaprojektowany, a także otwarty na GitHub .

Zrzut ekranu

Znajdź wersję dla rozwidleń z poprawkami i wizualizacją wprowadzania myszy tutaj: https://github.com/bfritscher/carnac/releases/tag/v3-beta

rburte
źródło
Ciekawe, ale nie tak piękne renderowanie jak KeyPosé.
Basj
Strona projektu zawiera tylko carnac.applicationplik, wideo youtube.com/watch?v=qSUDfzUkwnc pokazuje Carnac.exe. Dopiero później zdałem sobie sprawę, że mogę uruchomić carnac.applicationw systemie Windows, który pobiera i instaluje program. Znalazłem zip / exe również tutaj: github.com/downloads/Code52/carnac/Carnac.zip
Kai Noack
2
@Basj Carnac jest znacznie bardziej „piękny” niż KeyPosé (który wyświetla litery tylko jako zwykły tekst). Dzięki Carnac możesz zmienić wygląd wyświetlanych klawiszy (rozmiar czcionki, krycie, kolory).
Kai Noack,
@KaiNoack Mam na myśli, że domyślny styl Carnaca nie jest tak stylowy / minimalistyczny jak Keyposé. Domyślny projekt powinien zostać ulepszony;)
Basj,
Jak mogę zmienić pozycję obszaru wyświetlania naciśnięcia klawisza? Mogę znaleźć jakąkolwiek dokumentację.
jdhao
10

Chciałbym udostępnić moje narzędzie - keycastow.

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

wprowadź opis zdjęcia tutaj

strumyk hong
źródło
1
Wspaniała rzecz! Również LICECap jest świetny, nie wiedział o jednym :)
LogicDaemon
@brookhong, czego użyłeś do stworzenia animowanego giffa?
Ricardo C,
@RicardoC It's licecap, cockos.com/licecap
Brook Hong
Microsoft Security Essentials klasyfikuje to jako zagrożenie. No cóż!
rath
1
Tego narzędzia nie można pobrać jako plik binarny; musisz to zbudować sam, co jest dla mnie problemem, ponieważ nie mam pozwolenia.
Lqueryvg,
5

W tym celu napisałem skrypt AutoHotkey_L.

Aby go uruchomić, użyj AutoHotkey_L ( bezpośredni dl ), to FOSS. Ponadto dzięki AutoHotkey możesz skompilować skrypt do EXE (po prostu ).Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe

Może wyświetlać wciśnięte klawisze podobne do OSD lub standardowej końcówki narzędzia w pobliżu kursora myszy. Wyświetla również kliknięcia przycisku myszy i przewijanie kół.

(zauważ, że kadrowanie i rozmycie odbywa się w celach ilustracyjnych, sam skrypt wyświetla tylko tekst bez żadnych zakłóceń) Zrzut ekranu

Oto skrypt (skopiuj i wklej do notatnika, zapisz jako 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
źródło
Próbowałem uruchomić „DisplayPressedKeyOnScreen.exe” na Win7 64bit. Pojawia się komunikat o błędzie Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.Czy plik exe jest samodzielny? Czy też muszę wcześniej zainstalować AutoHotkey?
Kai Noack
@EchtEinfachTV Jestem pewien, że jest samodzielny. Ponadto właśnie pobrałem i z powodzeniem uruchomiłem go na Win 8.1 32-bit. Czy możemy porównać MD5? Mój jest d788516439ed743b3553eb3ae7b9082c, a rozmiar pliku to 332 288 bajtów.
LogicDaemon
Plik, który pobrałem z powyższego linku, pokazuje mi MD5: D788516439ED743B3553EB3AE7B9082C i rozmiar pliku 332 288. Powinien to być dokładnie ten sam plik. Dziwne jest również to, że po komunikacie o błędzie w systemie Windows 7 pojawił się skaner wirusów Panda Cloud, przenosząc „złośliwy” plik do kwarantanny.
Kai Noack,
@EchtEinfachTV, to prawdopodobnie program antywirusowy odmówił dostępu do pliku, gdy próbowałeś go uruchomić, dlatego otrzymałeś wiadomość Windows, że nie możesz uzyskać do niego dostępu. Chociaż nie wiem, dlaczego się blokuje, możesz sprawdzić: to standardowy plik binarny autohotkey połączony ze zwykłym (ale przeformatowanym) źródłem skryptu.
LogicDaemon
1
@Amina ty, myślę, że to przypadkowe przeniesienie folderów Dropbox przeze mnie. Naprawi mój post.
LogicDaemon,
2

Za pomocą klawiatury ekranowej można wyświetlać naciśnięcia klawiszy w systemie Windows. Po wpisaniu na klawiaturze fizycznej na ekranie jeden z nich podświetlany jest ten klawisz.

Unfundednut
źródło
1
Dzięki, próbowałem już tego, ale jedynym klawiszem modyfikującym, który się wyróżnia, jest klawisz Shift.
richardtallent
W systemie Windows 7 wpisz „klawiatura” w polu wyszukiwania menu Start i wybierz „Klawiatura ekranowa”
xhafan
Nie dotyczy mnie (wygraj 10).
NounVerber
1

Wskaźnik prezentacji jest najlepszą alternatywą dla MousePosé dla Windows. Zapewnia efekt wskaźnika, efekt kliknięcia myszą, naciśnięcia klawiszy, a nawet pozwala swobodnie rysować na ekranie, ale nie blokować ekranu. To naprawdę zaleta programu.

Garvey
źródło
1
... obecnie 30 USD.
miroxlav
1

PointerFocus może wyświetlać naciśnięcia klawiszy.

Dan
źródło
3
obecnie 12,50 USD
miroxlav
Niestety nie można dostosować / zignorować niektórych kluczy.
Basj
1

Napisałem małą aplikację dla systemu Windows o nazwie QiPress . Posiada elementy sterujące do zmiany wyglądu, wyświetlania lub ignorowania niektórych grup kluczy, a nawet dodawania tekstu statycznego (na przykład własnego imienia lub nazwy firmy). Pozycjonowanie jest możliwe poprzez wyłączenie pop-upu i przeciąganie pop-upu. Istnieją inne funkcje, których prawdopodobnie nie potrzebujesz, ale obejmują one głównie to, czego chcesz.

aalapshah
źródło
3
obecnie 30 USD
miroxlav
Wyjaśnienie dotyczące wersji: Darmowa wersja: Do użytku osobistego, niekomercyjnego. Niektóre zaawansowane funkcje są wyłączone (takie jak klawiatury różnych języków, wiele monitorów, wyświetlacz joysticka itp.). Bez ograniczeń czasowych. Wersja płatna: do wszystkich zastosowań. Wszystkie zaawansowane funkcje są włączone. Bez ograniczeń czasowych.
aalapshah
0

Możesz użyć PassMark KeyboardTest (bezpłatna 30-dniowa wycena, a następnie 24,00 USD do zakupu).

wprowadź opis zdjęcia tutaj

FYI:

Franck Dernoncourt
źródło