Windows-Dienstprogramm zum Rendern der Taste, die ich auf dem Bildschirm drücke [geschlossen]

52

Ich unterrichte eine große Gruppe von Personen aus der Ferne und werde eine Reihe von Tastenkombinationen für Anwendungen behandeln.

Ich habe MousePoses Bildschirmanzeige von Tastenanschlägen gesehen. Gibt es ein ähnliches Produkt für Windows?

MousePose Screenshot

Die anderen Funktionen von MousePose (ausgefallene Mauszeiger usw.) sind für mich nicht wirklich nützlich, nur das OSD der Tastendrücke.

richardtallent
quelle

Antworten:

36

KeyPosé ist eine kostenlose Alternative zu MousePosé für Windows. Sie können es im Screencast in Aktion sehen .

Hier ist ein Beispiel-Screenshot:

Alt-Text

John T
quelle
@richard du bist mehr als willkommen!
John T
4
Ich denke, es gibt einige Probleme. Sie können die Position, an der Sie die Tasten anzeigen, nicht ändern. Manchmal wird die graue Zone angezeigt, auch wenn Sie keine Taste drücken. Außerdem wird die Win / Super-Taste nicht angezeigt. Kombinationen, bei denen mehr als zwei Tasten gedrückt werden, wie Strg + Alt + C, werden auf seltsame Weise angezeigt, wie zuerst STRG, dann ALT (ich nehme an, es sollte STRG + ALT angezeigt werden) und schließlich STRG + ALT + C. Ist besser als nichts, aber ich denke es gibt bessere Möglichkeiten.
Alter Lagos
Registertasten werden aus irgendeinem Grund nicht registriert ...
laggingreflex
Registriert keine WIN-Kombinationen, zeigt keine STRG + UMSCHALT + ESC an. Meh.
Ev0oD
1
Verwenden Sie unten Carnac. Ich habe beide getestet und Carnac bietet Ihnen verschiedene visuelle Optionen. github.com/bfritscher/carnac/releases/tag/v3-beta
Kai Noack
13

Ich kann Carnac nur empfehlen . Es ist ein kostenloses Projekt, das auf GitHub gehostet wird.

Ein Tastaturprotokollierungs- und Präsentationsdienstprogramm für Präsentationen, Screencasts und um Sie zu einem besseren Tastaturbenutzer zu machen.

Es ist schön ausgeführt, schön gestaltet und auf GitHub auch als Open Source verfügbar .

Bildschirmfoto

Ein Fork Release mit Korrekturen und Visualisierung der Mauseingabe finden Sie hier: https://github.com/bfritscher/carnac/releases/tag/v3-beta

rburte
quelle
Interessantes, aber nicht so schönes Rendering wie KeyPosé.
Basj
Die Projektseite bietet nur eine carnac.applicationDatei, das Youtube-Video youtube.com/watch?v=qSUDfzUkwnc zeigt eine Carnac.exe. Erst später wurde mir klar, dass ich carnac.applicationin Windows starten kann und es das Programm herunterlädt und installiert. Die zip / exe habe ich auch hier gefunden: github.com/downloads/Code52/carnac/Carnac.zip
Kai Noack
2
@Basj Carnac ist viel "schöner" als KeyPosé (das nur die Buchstaben als Klartext anzeigt). Mit Carnac können Sie das Erscheinungsbild der angezeigten Tasten ändern (Schriftgröße, Deckkraft, Farben).
Kai Noack
@ KaiNoack Ich meine, der Standardstil von Carnac ist nicht so stylisch / minimalistisch wie Keyposé. Das Standarddesign sollte verbessert werden;)
Basj
Wie kann ich die Position des Tastenanschlag-Anzeigebereichs ändern? Ich kann scheinbar keine Dokumentation finden.
JDHAO
10

Ich möchte mein Tool - keycastow - teilen.

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

Bildbeschreibung hier eingeben

Brook Hong
quelle
1
Tolle Sache! Auch LICECap ist auch großartig, wusste nicht über eine :)
LogicDaemon
@brookhong Was hast du verwendet, um das animierte Giff zu erstellen?
Ricardo C
@RicardoC Es ist licecap, cockos.com/licecap
bach hong
Microsoft Security Essentials stuft dies als Bedrohung ein. Naja!
Rath
1
Dieses Tool kann nicht als Binärdatei heruntergeladen werden. Sie müssen es selbst bauen, was für mich ein Problem ist, weil ich keine Erlaubnis habe.
Lqueryvg
5

Zu diesem Zweck habe ich ein AutoHotkey_L-Skript geschrieben.

Um es auszuführen, benutze AutoHotkey_L ( direct dl ), es ist FOSS. Mit AutoHotkey können Sie auch Skripte zu EXE kompilieren (einfach ).Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe

Es kann gedrückte Tasten OSD-ähnlich oder Standard-Tool-Tipp in der Nähe des Mauszeigers anzeigen. Außerdem werden Mausklicks und das Scrollen mit dem Rad angezeigt.

(Beachten Sie, dass Frame & Blurring zu Illustrationszwecken ausgeführt wird. Das Skript selbst zeigt nur Text ohne Störungen an.) Bildschirmfoto

Hier ist das Skript (kopieren und in den Notizblock einfügen, als DisplayPressedKeysOnScreen.ahk speichern):

#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
quelle
Ich habe versucht, "DisplayPressedKeyOnScreen.exe" auf Win7 64bit zu starten. Ich erhalte die Fehlermeldung Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.Ist die exe-Datei eine eigenständige Datei? Oder muss ich vorher AutoHotkey installieren?
Kai Noack
@EchtEinfachTV Ich bin sicher, es ist Standalone. Außerdem habe ich es gerade heruntergeladen und erfolgreich unter Win 8.1 32-Bit gestartet. Können wir MD5 vergleichen? Meins ist d788516439ed743b3553eb3ae7b9082c, und die Dateigröße beträgt 332 288 Bytes.
LogicDaemon
Die Datei, die ich von Ihrem obigen Link heruntergeladen habe, zeigt mir MD5: D788516439ED743B3553EB3AE7B9082C und Dateigröße 332 288. Es sollte also genau dieselbe Datei sein. Es ist auch seltsam, dass nach der Fehlermeldung in Windows 7 der Virenscanner Panda Cloud auftauchte und die "bösartige" Datei in die Quarantäne verschob.
Kai Noack
@EchtEinfachTV dann ist es anscheinend Antivirus-Zugriff auf Datei verweigert, als Sie versucht haben, es zu starten, deshalb haben Sie Windows-Nachricht erhalten, dass Sie nicht darauf zugreifen können. Obwohl ich nicht weiß, warum es blockiert, können Sie überprüfen: Es ist eine Standard-Autohotkey-Binärdatei, die mit einer Klartext- (aber neu formatierten) Skriptquelle verknüpft ist.
LogicDaemon
1
@Amina ty, ich denke, das ist ein versehentliches Verschieben von Dropbox-Ordnern durch mich. Repariert meinen Beitrag.
LogicDaemon
2

Sie können die Bildschirmtastatur verwenden, um das Drücken von Tasten anzuzeigen, die mit Windows geliefert werden. Wenn Sie auf Ihrer physischen Tastatur tippen, wird auf dem Bildschirm diese Taste hervorgehoben.

Unfinanzierte Nuss
quelle
1
Danke, das habe ich bereits versucht, aber die einzige hervorgehobene Modifikationstaste ist die Umschalttaste.
richardtallent
Geben Sie
Es ist nicht für mich (10 gewinnen).
NounVerber
1

Presentation Pointer ist die beste Alternative zu MousePosé für Windows. Es bietet Zeigereffekt, Mausklickeffekt und Tastenanschläge und ermöglicht es Ihnen sogar, frei auf dem Bildschirm zu zeichnen, den Bildschirm jedoch nicht zu sperren. Das ist wirklich ein Vorteil des Programms.

Garvey
quelle
1
... zur Zeit 30 USD.
Miroxlav
1

PointerFocus kann Ihre Tastenanschläge anzeigen.

Dan
quelle
3
Derzeit 12,50 USD
miroxlav
Leider können bestimmte Schlüssel nicht angepasst / ignoriert werden.
Basj
1

Ich habe eine kleine Windows-App namens QiPress geschrieben . Es verfügt über Steuerelemente zum Ändern des Erscheinungsbilds, zum Anzeigen oder Ignorieren bestimmter Schlüsselgruppen sowie zum Hinzufügen von statischem Text (z. B. Ihr eigener Name oder Firmenname). Die Positionierung ist möglich, indem Sie das Klicken und Ziehen des Popups deaktivieren. Es gibt andere Funktionen, die Sie möglicherweise nicht benötigen, die jedoch hauptsächlich die von Ihnen gewünschten Funktionen abdecken.

aalapshah
quelle
3
Derzeit 30 USD
miroxlav
Zur Klärung der Versionen: Kostenlose Version: Für den persönlichen, nicht kommerziellen Gebrauch. Einige erweiterte Funktionen sind deaktiviert (z. B. Tastaturen in verschiedenen Sprachen, mehrere Monitore, Joystick-Anzeige usw.). Keine zeitliche Begrenzung. Bezahlte Version: Für alle Verwendungszwecke. Alle erweiterten Funktionen aktiviert. Keine zeitliche Begrenzung.
Aalapshah
0

Sie können PassMark KeyboardTest verwenden (kostenlose 30-Tage- Testversion , Kaufpreis 24,00 US-Dollar).

Bildbeschreibung hier eingeben

Zu Ihrer Information:

Franck Dernoncourt
quelle