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.

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


@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


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


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
}
}

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.


1
Danke, das habe ich bereits versucht, aber die einzige hervorgehobene Modifikationstaste ist die Umschalttaste.
richardtallent


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.


1
... zur Zeit 30 USD.
Miroxlav


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.


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:

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.