Tiện ích Windows để hiển thị phím nào tôi đang nhấn trên màn hình [đã đóng]


52

Tôi đang đào tạo cho một nhóm lớn người từ xa và sẽ bao gồm một số phím tắt ứng dụng.

Tôi đã thấy màn hình nhấn phím trên màn hình của MousePose ; Có một sản phẩm tương tự cho Windows?

Ảnh chụp màn hình MousePose

Các tính năng khác của MousePose (con trỏ chuột ưa thích, v.v.) không thực sự hữu ích với tôi, chỉ là OSD của các lần nhấn phím.

Câu trả lời:


36

KeyPosé là một thay thế miễn phí cho MousePosé cho Windows. Bạn có thể thấy nó trong hành động trong screencast .

Đây là một ảnh chụp màn hình mẫu:

văn bản thay thế


@richard bạn được chào đón nhiều hơn!
John T

4
Tôi nghĩ rằng nó có một số vấn đề. Bạn không thể thay đổi vị trí nơi bạn hiển thị các phím, đôi khi vùng màu xám tiếp tục hiển thị ngay cả khi bạn không nhấn phím, cũng không thể hiển thị phím win / super. Các kết hợp bao gồm nhiều hơn hai phím được nhấn, như ctrl + alt + c, được hiển thị theo cách kỳ lạ, như CTRL đầu tiên, sau đó ALT (Tôi cho rằng nó sẽ hiển thị CTRL + ALT) và cuối cùng là CTRL + ALT + C. Tốt hơn là không có gì, nhưng tôi nghĩ có những lựa chọn tốt hơn.
Alter Lagos

Không đăng ký các phím Tab vì một số lý do ...
laggingreflex

Không đăng ký WIN combinatoin, không hiển thị CTRL + SHIFT + ESC. Meh.
Ev0oD

1
Sử dụng Carnac dưới đây. Tôi đã thử nghiệm cả hai và Carnac cung cấp cho bạn các tùy chọn hình ảnh khác nhau. github.com/bfritscher/carnac/release/tag/v3-beta
Kai Noack

13

Tôi đánh giá cao Carnac . Đây là một dự án miễn phí được lưu trữ trên GitHub.

Một tiện ích ghi nhật ký và trình bày bàn phím cho các bài thuyết trình, screencasts và để giúp bạn trở thành người dùng bàn phím tốt hơn.

Nó được thực hiện độc đáo, được thiết kế độc đáo và cũng có nguồn mở trên GitHub .

Ảnh chụp màn hình

Tìm một bản phát hành ngã ba với các bản sửa lỗi và trực quan hóa đầu vào chuột tại đây: https://github.com/bfritscher/carnac/release/tag/v3-beta


Thú vị, nhưng không đẹp mắt như KeyPosé.
Basj

Trang dự án chỉ cung cấp một carnac.applicationtệp, video youtube youtube.com/watch?v=qSUDfzUkwnc hiển thị a Carnac.exe. Ngay sau đó tôi nhận ra rằng tôi có thể khởi chạy carnac.applicationtrong Windows và nó tải xuống và cài đặt chương trình. Tôi cũng tìm thấy zip / exe ở đây: github.com/doads/Code52/carnac/Carnac.zip
Kai Noack

2
@Basj Carnac "đẹp" hơn nhiều so với KeyPosé (chỉ hiển thị các chữ cái dưới dạng văn bản thuần túy). Với Carnac, bạn có thể thay đổi giao diện của các phím được hiển thị (cỡ chữ, độ mờ, màu sắc).
Kai Noack

@KaiNoack Ý tôi là phong cách mặc định của Carnac không sành điệu / tối giản như Keyposeé. Thiết kế mặc định nên được cải thiện;)
Basj

Làm cách nào để thay đổi vị trí của khu vực hiển thị tổ hợp phím? Tôi dường như có thể tìm thấy bất kỳ tài liệu.
jdhao

10

Tôi muốn chia sẻ công cụ của tôi - keycastow.

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

nhập mô tả hình ảnh ở đây


1
Điều tuyệt vời! Ngoài ra LICECap cũng rất tuyệt, không biết về một người :)
LogicDaemon

@brookhong bạn đã sử dụng gì để tạo giff hoạt hình?
Ricardo C

@RicardoC Đó là Licecap, cockos.com/licecap
brook hong

Microsoft Security Essentials xếp loại này là một mối đe dọa. Ồ tốt
Rath

1
Công cụ này không thể tải xuống dưới dạng nhị phân; bạn phải tự xây dựng nó mà đối với tôi là một vấn đề vì tôi không được phép.
Lqueryvg 17/03/18

5

Tôi đã viết một kịch bản AutoHotkey_L cho mục đích này.

Để chạy nó, hãy sử dụng AutoHotkey_L ( dl trực tiếp ), đó là FOSS. Ngoài ra, với AutoHotkey, bạn có thể biên dịch tập lệnh thành EXE (đơn giản ).Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe

Nó có thể hiển thị các phím được nhấn giống như OSD hoặc Mẹo công cụ tiêu chuẩn gần con trỏ chuột. Ngoài ra, nó hiển thị nhấp chuột và cuộn bánh xe.

(lưu ý rằng khung và làm mờ được thực hiện cho mục đích minh họa, bản thân tập lệnh chỉ hiển thị văn bản với bất kỳ sự xáo trộn nào) Ảnh chụp màn hình

Đây là tập lệnh (sao chép và dán vào notepad, lưu dưới dạng DisplayPressionKeysOnScreen.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
}
}

Tôi đã thử khởi động "DisplayPressionKeyOnScreen.exe" trên Win7 64 bit. Tôi nhận được thông báo lỗi Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.Có phải tệp exe là độc lập không? Hoặc tôi phải cài đặt AutoHotkey trước?
Kai Noack

@EchtEinfachTV Tôi chắc chắn nó độc lập. Ngoài ra, tôi vừa tải xuống và khởi chạy thành công trên Win 8.1 32-bit. Chúng ta có thể so sánh MD5 không? Của tôi là d788516439ed743b3553eb3ae7b9082c và kích thước tệp là 332 288 byte.
LogicDaemon

Tệp mà tôi đã tải xuống từ liên kết của bạn ở trên hiển thị cho tôi MD5: D788516439ED743B3553EB3AE7B9082C và kích thước tệp 332 288. Vì vậy, nó phải là cùng một tệp. Một điều kỳ lạ là sau thông báo lỗi trong Windows 7, trình quét virus Panda Cloud đã xuất hiện, di chuyển tệp 'độc hại' để cách ly.
Kai Noack

@EchtEinfachTV sau đó rõ ràng là phần mềm chống vi-rút đã từ chối quyền truy cập vào tệp khi bạn cố khởi chạy nó, đó là lý do tại sao bạn nhận được thông báo Windows mà bạn không thể truy cập. Mặc dù tôi không biết tại sao nó chặn, bạn có thể kiểm tra: đó là nhị phân autohotkey tiêu chuẩn được kết hợp với nguồn tập lệnh plaintext (nhưng được định dạng lại).
LogicDaemon

1
@Amina ty, tôi đoán đó là sự di chuyển ngẫu nhiên của các thư mục dropbox của tôi. Sẽ sửa bài của tôi.
LogicDaemon

2

Bạn có thể sử dụng bàn phím trên màn hình để hiển thị các phím bấm đi kèm với cửa sổ. Khi bạn gõ trên bàn phím vật lý, trên màn hình sẽ có một phím nổi bật.


1
Cảm ơn, tôi đã thử nó rồi, nhưng phím bổ trợ duy nhất nổi bật là phím Shift.
richardtallent

Trong windows 7, nhập "bàn phím" trong hộp tìm kiếm menu bắt đầu và chọn "Bàn phím trên màn hình"
xhafan

Nó không dành cho tôi (thắng 10).
NounVerber

1

Con trỏ trình bày là một thay thế tốt nhất cho MousePosé cho Windows. Nó cung cấp Hiệu ứng con trỏ, Hiệu ứng nhấp chuột, tổ hợp phím và thậm chí cho phép bạn vẽ tự do trên màn hình nhưng không khóa màn hình. Đó thực sự là một lợi thế của chương trình.


1
... Hiện tại 30 USD.
miroxlav


1

Tôi đã viết một ứng dụng Windows nhỏ có tên QiPress . Nó có các điều khiển để thay đổi giao diện, hiển thị hoặc bỏ qua các nhóm khóa nhất định, thậm chí thêm văn bản tĩnh (ví dụ tên của bạn hoặc tên công ty). Định vị có thể bằng cách vô hiệu hóa nhấp qua và kéo nhấp vào cửa sổ bật lên. Có những tính năng khác mà bạn có thể không yêu cầu, nhưng nó bao gồm hầu hết những gì bạn muốn.


3
hiện tại 30 USD
miroxlav

Để làm rõ về các phiên bản: Phiên bản miễn phí: Dành cho cá nhân, phi thương mại. Một số tính năng nâng cao bị tắt (như bàn phím ngôn ngữ khác nhau, nhiều màn hình, màn hình cần điều khiển, v.v.). Không giới hạn thời gian. Phiên bản trả phí: Dành cho mọi mục đích sử dụng. Tất cả các tính năng nâng cao được kích hoạt. Không giới hạn thời gian.
aalapshah

0

Bạn có thể sử dụng PassMark KeyboardTest (Đánh giá miễn phí 30 ngày, sau đó là US $ 24,00 để mua hàng.)

nhập mô tả hình ảnh ở đây

Tài chính

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.