ยูทิลิตี้ของ Windows เพื่อแสดงว่าฉันกำลังกดแป้นใดบนหน้าจอ [ปิด]


52

ฉันกำลังฝึกอบรมให้กับคนกลุ่มใหญ่จากระยะไกลและจะครอบคลุมปุ่มลัดของแอปพลิเคชันจำนวนมาก

ฉันเคยเห็นการกดปุ่มบนหน้าจอของMousePose ; มีผลิตภัณฑ์ที่คล้ายกันสำหรับ Windows หรือไม่

ภาพหน้าจอของ MousePose

คุณสมบัติอื่น ๆ ของ MousePose (ตัวชี้เมาส์แฟนซี ฯลฯ ) ไม่ได้มีประโยชน์สำหรับฉันจริงๆเพียงแค่ OSD ของการกดปุ่ม

คำตอบ:


36

KeyPoséเป็นทางเลือกฟรีสำหรับMousePoséสำหรับ Windows คุณสามารถดูได้ในการดำเนินการในscreencast

นี่คือภาพตัวอย่าง:

ข้อความแสดงแทน


@ Richard คุณมากกว่ายินดีต้อนรับ!
John T

4
ฉันคิดว่ามันมีปัญหาบางอย่าง คุณไม่สามารถเปลี่ยนตำแหน่งที่คุณแสดงปุ่มได้บางครั้งเขตสีเทาจะยังคงปรากฏแม้ว่าคุณจะไม่ได้กดปุ่ม แต่จะไม่แสดงปุ่ม win / super ชุดค่าผสมที่เกี่ยวข้องกับคีย์มากกว่าสองปุ่มที่กดเช่น ctrl + alt + c แสดงขึ้นในลักษณะที่แปลกประหลาดเช่นเดียวกับ CTRL แรกจากนั้น ALT (ฉันคิดว่ามันควรจะแสดง CTRL + ALT) และสุดท้าย CTRL + ALT + C ดีกว่าไม่มีอะไร แต่ฉันคิดว่ามีตัวเลือกที่ดีกว่า
Alter Lagos

ไม่ได้ลงทะเบียนคีย์แท็บด้วยเหตุผลบางอย่าง ...
laggingreflex

ไม่ลงทะเบียน WIN combinatoins ไม่แสดง CTRL + SHIFT + ESC Meh
Ev0oD

1
ใช้ Carnac ด้านล่าง ฉันทดสอบทั้งสองและ Carnac ให้ตัวเลือกการมองเห็นที่หลากหลายแก่คุณ github.com/bfritscher/carnac/releases/tag/v3-beta
Kai Noack

13

ผมขอแนะนำให้คาร์นัค เป็นโครงการฟรีที่โฮสต์ใน GitHub

ยูทิลิตี้การบันทึกแป้นพิมพ์และงานนำเสนอสำหรับการนำเสนอหน้าจอและเพื่อช่วยให้คุณเป็นผู้ใช้คีย์บอร์ดที่ดีขึ้น

ก็ดำเนินการอย่างได้รับการออกแบบอย่างสวยงามและยังเปิดมาบน GitHub

ภาพหน้าจอ

ค้นหาการวางจำหน่ายทางแยกพร้อมการแก้ไขและการแสดงภาพของอินพุตเมาส์ที่นี่: https://github.com/bfritscher/carnac/releases/tag/v3-beta


น่าสนใจ แต่ไม่แสดงผลที่สวยงามเท่าKeyPosé
Basj

หน้าโครงการมีเพียงcarnac.applicationไฟล์วิดีโอ YouTube youtube.com/watch?v=qSUDfzUkwncCarnac.exeการแสดง ฉันเพิ่งรู้ว่าฉันสามารถเปิดตัวcarnac.applicationใน Windows และดาวน์โหลดและติดตั้งโปรแกรม ฉันพบ zip / exe ด้วยเช่นกันที่นี่: github.com/downloads/Code52/carnac/Carnac.zip
Kai Noack

2
@Basj Carnac นั้น "สวยงาม" มากกว่าKeyPosé (ซึ่งแสดงให้เห็นว่าตัวอักษรเป็นข้อความธรรมดา) ด้วย Carnac คุณสามารถเปลี่ยนลักษณะที่ปรากฏของปุ่มที่ปรากฏ (ขนาดตัวอักษรความทึบสี)
Kai Noack

@KaiNoack ฉันหมายถึงรูปแบบเริ่มต้นของ Carnac ไม่ได้มีสไตล์ / มินิมอลที่เป็นKeyposé การออกแบบเริ่มต้นควรได้รับการปรับปรุง;)
Basj

ฉันจะเปลี่ยนตำแหน่งของพื้นที่การกดแป้นพิมพ์ได้อย่างไร ฉันสามารถหาเอกสารใด ๆ
jdhao

10

ฉันต้องการแชร์เครื่องมือ - keycastow

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

ป้อนคำอธิบายรูปภาพที่นี่


1
เยี่ยมมาก! LICECap ก็ยอดเยี่ยมเช่นกันไม่รู้เหมือนกัน :)
LogicDaemon

@ บรูกส์คุณใช้อะไรในการสร้างอนิเมชัน giff
Ricardo C

@RicardoC มันคือ licecap, cockos.com/licecap
brook hong

Microsoft Security Essentials จัดว่าเป็นภัยคุกคาม โอ้ดี!
rath

1
เครื่องมือนี้ไม่สามารถดาวน์โหลดเป็นไบนารีได้ คุณต้องสร้างด้วยตัวเองซึ่งสำหรับฉันเป็นปัญหาเพราะฉันไม่ได้รับอนุญาต
Lqueryvg

5

ฉันเขียนสคริปต์ AutoHotkey_L เพื่อจุดประสงค์นี้

หากต้องการเรียกใช้ใช้AutoHotkey_L ( direct dl ) คือ FOSS นอกจากนี้ด้วย AutoHotkey คุณสามารถรวบรวมสคริปต์เพื่อ EXE (เพียง)Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe

มันสามารถแสดงปุ่มกดคล้าย OSD หรือ Tool-tip มาตรฐานใกล้เคอร์เซอร์ของเมาส์ นอกจากนี้ยังแสดงการคลิกปุ่มเมาส์และการเลื่อนด้วยล้อ

(โปรดทราบว่าเฟรมและการเบลอของภาพนั้นทำขึ้นเพื่อจุดประสงค์ในการแสดงเท่านั้นสคริปต์จะแสดงเฉพาะข้อความที่ไม่มีการรบกวนใด ๆ ) ภาพหน้าจอ

นี่คือสคริปต์ (คัดลอกและวางไปยัง Notepad บันทึกเป็น 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
}
}

ฉันพยายามเริ่ม "DisplayPressedKeyOnScreen.exe" บน Win7 64 บิต ฉันได้รับข้อความแสดงข้อผิดพลาดWindows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.ไฟล์ exe เป็นแบบสแตนด์อโลนหรือไม่ หรือฉันต้องติดตั้ง AutoHotkey ล่วงหน้าหรือไม่
Kai Noack

@EchtEinfachTV ฉันแน่ใจว่าเป็นแบบสแตนด์อโลน นอกจากนี้ฉันเพิ่งดาวน์โหลดและเปิดใช้งานได้สำเร็จบน Win 8.1 32-bit เราสามารถเปรียบเทียบ MD5 ได้ไหม เหมืองของฉันคือ d788516439ed743b3553eb3ae7b9082c และขนาดไฟล์คือ 332 288 ไบต์
LogicDaemon

ไฟล์ที่ฉันดาวน์โหลดจากลิงก์ของคุณด้านบนแสดง MD5: D788516439ED743B3553EB3AE7B9082C และขนาดไฟล์ 332 288 ดังนั้นควรเป็นไฟล์เดียวกัน เป็นเรื่องแปลกที่หลังจากข้อความแสดงข้อผิดพลาดใน Windows 7 สแกนไวรัส Panda Cloud โผล่ขึ้นมาย้ายไฟล์ 'ประสงค์ร้าย' ไปยังกักกัน
Kai Noack

@EchtEinfachTV เห็นได้ชัดว่ามันเป็นโปรแกรมป้องกันไวรัสปฏิเสธการเข้าถึงไฟล์เมื่อคุณพยายามเปิดมันนั่นเป็นเหตุผลที่คุณได้รับข้อความ Windows ว่าคุณไม่สามารถเข้าถึงได้ แม้ว่าฉันจะไม่ทราบสาเหตุที่บล็อก แต่คุณสามารถตรวจสอบ: มันเป็นไบนารี autohotkey มาตรฐานร่วมกับแหล่งสคริปต์ธรรมดา (แต่ฟอร์แมตใหม่)
LogicDaemon

1
@Amina, ฉันคิดว่านั่นเป็นการย้ายโฟลเดอร์ดรอปบ็อกซ์โดยบังเอิญ จะแก้ไขโพสต์ของฉัน
LogicDaemon

2

คุณสามารถใช้แป้นพิมพ์บนหน้าจอเพื่อแสดงการกดปุ่มที่มาพร้อมกับ Windows เมื่อคุณพิมพ์แป้นพิมพ์ทางกายภาพของคุณบนหน้าจอหนึ่งไฮไลท์กล่าวว่าคีย์


1
ขอบคุณฉันลองมาแล้ว แต่คีย์ตัวปรับเท่านั้นที่ไฮไลต์คือปุ่ม Shift
richardtallent

ใน windows 7 ให้พิมพ์ "keyboard" ในกล่องค้นหาเมนูเริ่มแล้วเลือก "On-Screen Keyboard"
xhafan

มันไม่ได้สำหรับฉัน (ชนะ 10)
NounVerber

1

Presentation Pointerเป็นทางเลือกที่ดีที่สุดสำหรับMousePoséสำหรับ Windows มันมีพอยน์เตอร์เอฟเฟกต์, เม้าส์คลิกเอฟเฟกต์, Keystrokes และแม้กระทั่งให้คุณวาดภาพบนหน้าจอได้อย่างอิสระ แต่ไม่ล็อคหน้าจอ นั่นเป็นข้อได้เปรียบของโปรแกรมจริงๆ


1
... ปัจจุบัน 30 USD
miroxlav

1

PointerFocusสามารถแสดงการกดแป้นของคุณ


3
ปัจจุบัน 12.50 USD
miroxlav

น่าเสียดายที่มันไม่สามารถปรับแต่ง / เพิกเฉยต่อบางคีย์ได้
Basj

1

ฉันได้เขียนแอป Windows เล็ก ๆ ที่เรียกQiPress มีการควบคุมการเปลี่ยน look-n-feel แสดงหรือละเว้นกลุ่มคีย์บางอย่างแม้แต่เพิ่มข้อความแบบคงที่ (เช่นชื่อหรือชื่อ บริษัท ของคุณเอง) การจัดตำแหน่งเป็นไปได้โดยการปิดการคลิกผ่านและคลิกแล้วลากป๊อปอัป มีคุณสมบัติอื่น ๆ ที่คุณอาจไม่ต้องการ แต่ครอบคลุมส่วนใหญ่สิ่งที่คุณต้องการ


3
ปัจจุบัน 30 USD
miroxlav

เพื่อชี้แจงเกี่ยวกับเวอร์ชั่น: เวอร์ชั่นฟรี: สำหรับการใช้งานส่วนตัวที่ไม่ใช่เชิงพาณิชย์ คุณสมบัติขั้นสูงบางอย่างถูกปิดใช้งาน (เช่นแป้นพิมพ์ภาษาต่าง ๆ จอภาพหลายจอจอยสติ๊กแสดง ฯลฯ ) ไม่ จำกัด เวลา รุ่นจ่าย: สำหรับการใช้งานทั้งหมด เปิดใช้งานคุณสมบัติขั้นสูงทั้งหมด ไม่ จำกัด เวลา
aalapshah

0

คุณสามารถใช้PassMark KeyboardTest (ประเมินผลฟรี 30 วันจากนั้น US $ 24.00 ในการซื้อ)

ป้อนคำอธิบายรูปภาพที่นี่

FYI:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.