大人数のグループにリモートでトレーニングを行っており、多くのアプリケーションショートカットキーをカバーします。
MousePose の画面上のキーストロークの表示を見ました。 Windowsに同様の製品はありますか?
MousePoseの他の機能(ファンシーマウスポインターなど)は、私にとってはあまり役に立ちません。キーを押すOSDだけです。
KeyPosé は、Windows用のMousePoséのfreeの代替です。実際の動作は screencast で確認できます。
以下はスクリーンショットの例です。
Carnac を強くお勧めします。これは、GitHubでホストされている無料のプロジェクトです。
プレゼンテーション、スクリーンキャスト、およびキーボードの優れたユーザーになるためのキーボードロギングおよびプレゼンテーションユーティリティ。
うまく実行され、うまく設計されており、また GitHubでオープンソース化 です。
修正とマウス入力の視覚化を備えたフォークリリースをここで見つけてください: https://github.com/bfritscher/carnac/releases/tag/v3-beta
私のツール、キーキャストを共有したいと思います。
https://brookhong.github.io/2014/04/28/keycast-on-windows.html
この目的でAutoHotkey_Lスクリプトを記述しました。
それを実行するには、 AutoHotkey_L ( direct dl )を使用します。これはFOSSです。また、AutoHotkeyを使用すると、スクリプトをEXEにコンパイルできます(単にAhk2Exe.exe /in
DisplayPressedKeyOnScreen.ahk
/out
DisplayPressedKeyOnScreen.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
}
}
画面キーボードを使用して、ウィンドウに付属するキーの押下を表示できます。物理的なキーボードで入力すると、画面上でそのキーが強調表示されます。
QiPress と呼ばれる小さなWindowsアプリを作成しました。ルックアンドフィールを変更したり、特定のキーグループを表示または無視したり、静的テキスト(たとえば、自分の名前や会社名)を追加したりするためのコントロールがあります。クリックスルーを無効にし、ポップアップをクリックしてドラッグすると、配置が可能になります。あなたがおそらく必要としないかもしれない他の機能がありますが、それはたいていあなたが欲しいものをカバーします。
PointerFocus はキーストロークを表示できます。
プレゼンテーションポインター は、MousePoséfor Windowsに代わる最良の方法です。ポインターエフェクト、マウスクリックエフェクト、キーストロークを提供し、画面に自由に描画できますが、画面をロックすることはできません。それは本当にプログラムの利点です。
PassMark KeyboardTest を使用できます(30日間の無料評価、その後、購入には24.00米ドル)。
ご参考までに: