화면에서 누르는 키를 렌더링하는 Windows 유틸리티 [닫힘]


52

많은 사람들에게 원격으로 교육을 제공하고 있으며 많은 응용 프로그램 바로 가기 키를 다룰 것입니다.

MousePose 의 화면에 키 스트로크가 표시되는 것을 보았습니다 . Windows 용 비슷한 제품이 있습니까?

MousePose 스크린 샷

MousePose의 다른 기능 (팬시 마우스 포인터 등)은 나에게 유용하지 않으며 키 누름의 OSD 만 있습니다.

답변:


36

KeyPosé 는 Windows 용 MousePosé 의 무료 대안입니다. 스크린 캐스트 에서 작동중인 것을 볼 수 있습니다 .

다음은 샘플 스크린 샷입니다.

대체 텍스트


@richard 당신은 환영 이상입니다!
John T

4
문제가 있다고 생각합니다. 키를 표시하는 위치를 변경할 수 없으며, 키를 누르지 않아도 회색 영역이 계속 표시되고 win / super 키도 표시되지 않는 경우가 있습니다. Ctrl + Alt + C와 같이 눌려진 키가 두 개 이상인 조합은 첫 번째 CTRL과 같은 이상한 방식으로 표시됩니다. 아무것도 아닌 것보다 낫지 만 더 나은 옵션이 있다고 생각합니다.
Alter Lagos

어떤 이유로 탭 키를 등록하지 않습니다 ...
laggingreflex

WIN 콤비 나토 인을 등록하지 않고 CTRL + SHIFT + ESC를 표시하지 않았습니다. Meh.
Ev0oD

1
아래의 Carnac을 사용하십시오. 나는 둘 다 테스트했고 Carnac은 다양한 시각적 옵션을 제공합니다. github.com/bfritscher/carnac/releases/tag/v3-beta
Kai Noack

13

나는 Carnac을 강력히 추천한다 . GitHub에서 호스팅되는 무료 프로젝트입니다.

프리젠 테이션, 스크린 캐스트를위한 키보드 로깅 및 프리젠 테이션 유틸리티로서보다 나은 키보드 사용자가 될 수 있습니다.

GitHub 에서 훌륭하게 실행되고, 잘 설계되었으며, 오픈 소스입니다 .

스크린 샷

https://github.com/bfritscher/carnac/releases/tag/v3-beta : 마우스 입력의 수정 및 시각화와 포크 릴리스를 찾으십시오


흥미롭지 만 KeyPosé만큼 아름다운 렌더링은 아닙니다.
Basj

프로젝트 페이지는 carnac.application파일 만 제공 하며 youtube 비디오 youtube.com/watch?v=qSUDfzUkwnc 는을 보여줍니다 Carnac.exe. 나중에 나는 carnac.applicationWindows에서 시작할 수 있고 프로그램을 다운로드하여 설치 한다는 것을 깨달았습니다 . 또한 여기에 우편 / EXE를 발견 github.com/downloads/Code52/carnac/Carnac.zip
카이 NOACK에게

2
@Basj Carnac은 KeyPosé (문자 만 일반 텍스트로 표시)보다 훨씬 "아름답습니다". Carnac을 사용하면 표시된 키의 모양 (글꼴 크기, 불투명도, 색상)을 변경할 수 있습니다.
Kai Noack

@ KaiNoack Carnac의 기본 스타일은 Keyposé만큼 세련되고 미니멀하지 않습니다. 기본 디자인이 향상되어야합니다;)
Basj

키 스트로크 표시 영역의 위치를 ​​어떻게 변경합니까? 모든 문서를 찾을 수 있습니다.
jdhao

10

도구 인 키 캐스트를 공유하고 싶습니다.

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

여기에 이미지 설명을 입력하십시오


1
대단해! 또한 LICECap도 훌륭합니다. 하나도 몰랐습니다 :)
LogicDaemon

@brookhong 애니메이션 GIF를 만들기 위해 무엇을 사용하셨습니까?
Ricardo C

@RicardoC 그것은 licecap, cockos.com/licecap
브룩

Microsoft Security Essentials는이를 위협으로 분류합니다. 오 잘!
rath

1
이 도구는 바이너리로 다운로드 할 수 없습니다. 내가 허락하지 않기 때문에 나에게 문제가되는 것을 직접 만들어야합니다.
Lqueryvg

5

이 목적으로 AutoHotkey_L 스크립트를 작성했습니다.

실행하려면 AutoHotkey_L ( direct dl )을 사용하십시오 .FOSS 입니다. 또한 AutoHotkey를 사용하면 스크립트를 EXE (간단히 )로 컴파일 할 수 있습니다 .Ahk2Exe.exe /inDisplayPressedKeyOnScreen.ahk/outDisplayPressedKeyOnScreen.exe

마우스 커서 근처에 누른 키 OSD와 같은 표준 툴팁을 표시 할 수 있습니다. 또한 마우스 버튼 클릭과 휠 스크롤을 표시합니다.

(프레임 및 흐리게 처리는 설명 목적으로 수행되며, 스크립트 자체에는 방해가없는 텍스트 만 표시됨) 스크린 샷

다음은 스크립트입니다 (메모장에 복사하여 붙여 넣기, 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
}
}

Win7 64bit에서 "DisplayPressedKeyOnScreen.exe"를 시작하려고했습니다. Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.exe 파일이 독립형입니까? 라는 오류 메시지 가 나타납니다. 아니면 미리 오토 핫키를 설치해야합니까?
Kai Noack 2016 년

@EchtEinfachTV 독립형이라고 확신합니다. 또한 방금 Win 8.1 32 비트에서 다운로드하여 성공적으로 시작했습니다. MD5를 비교할 수 있습니까? 광산은 d788516439ed743b3553eb3ae7b9082c이며 파일 크기는 332288 바이트입니다.
LogicDaemon

링크 에서 다운로드 한 파일은 MD5 : D788516439ED743B3553EB3AE7B9082C 및 파일 크기 332 288입니다. 정확히 동일한 파일이어야합니다. Windows 7의 오류 메시지 후에 바이러스 스캐너 인 Panda Cloud가 팝업되어 '악의적 인'파일을 검역소로 옮긴 것도 이상합니다.
Kai Noack

@EchtEinfachTV는 파일을 실행하려고 할 때 바이러스 백신이 파일에 대한 액세스를 거부했기 때문에 액세스 할 수 없다는 Windows 메시지를 받았습니다. 왜 차단하는지 모르겠지만 확인할 수 있습니다 : 일반 텍스트 (그러나 형식이 바뀐) 스크립트 소스와 결합 된 표준 자동 단축 키 바이너리입니다.
LogicDaemon

1
@ Amina ty, 실수로 Dropbox 폴더가 이동하는 것 같습니다. 내 게시물을 수정합니다.
LogicDaemon

2

온 스크린 키보드를 사용하여 창과 함께 제공되는 키 누름을 표시 할 수 있습니다. 실제 키보드를 입력하면 화면의 키보드가 해당 키를 강조 표시합니다.


1
고마워, 나는 이미 그것을 시도했지만 강조 표시하는 유일한 수정 자 키는 Shift 키입니다.
richardtallent

Windows 7의 경우 시작 메뉴 검색 상자에 "keyboard"를 입력하고 "온 스크린 키보드"
xhafan

그것은 나를 위해하지 않습니다 (승 10).
NounVerber

1

Presentation Pointer 는 Windows 용 MousePosé의 최상의 대안입니다. 포인터 효과, 마우스 클릭 효과, 키 스트로크를 제공하며 화면에 자유롭게 그릴 수 있지만 화면을 잠글 수는 없습니다. 그것은 실제로 프로그램의 장점입니다.


1
... 현재 30 USD.
miroxlav


1

QiPress 라는 작은 Windows 앱을 작성했습니다 . 룩앤필을 변경하거나 특정 키 그룹을 표시하거나 무시하고 정적 텍스트 (예 : 자신의 이름 또는 회사 이름)를 추가 할 수있는 컨트롤이 있습니다. 클릭 연결을 사용 중지하고 팝업을 클릭 드래그하여 위치를 지정할 수 있습니다. 필요하지 않을 수도있는 다른 기능이 있지만 대부분 원하는 기능을 다룹니다.


3
현재 30 USD
miroxlav

버전을 명확히하려면 : 무료 버전 : 개인적, 비상업적 용도. 다양한 고급 키보드, 다중 모니터, 조이스틱 디스플레이 등 일부 고급 기능이 비활성화되었습니다. 시간 제한이 없습니다. 유료 버전 : 모든 용도에 사용됩니다. 모든 고급 기능이 활성화되었습니다. 시간 제한이 없습니다.
aalapshah

0

PassMark KeyboardTest 를 사용할 수 있습니다 (무료 30 일 평가 후 구매하려면 US $ 24.00).

여기에 이미지 설명을 입력하십시오

참고 사항 :

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.