福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

作成日:2008/01/06
タグ:,

「できマウス。」を使いたおす

AutoHotkey + 「できマウス。」 その 1/2

「できマウス。」様々な入力スイッチをPCにつなげることができる、 便利なUSBインターフェースです。

(以下は昨年7月に某MLに投稿した記事に加筆修正したものです。)

先日、キーボード入力を挿げ替えるソフトを探していて、「AutoHotkey」なるも のを見つけました。これは、ショートカットキー操作を有していないアプリケー ションソフトに、ショートカット操作をユーザサイドで加えたりすることを本来 の目的としているようなのですが、ジョイスティック入力も認識することを知り 興味を持ちました。

で、さっそく試してみると、ちゃんと「できマウス。」経由のスイッチ入力も捕 らえます。スイッチ入力をキーボード入力やマウス入力に置き換える、 「JoyToKey」と同様の機能は比較的簡単に実現できました。また、かなり強力な スクリプトエンジンを有していますので、複雑な設定もできそうです。ドキュメ ントを眺めてみて、メリットと実現できそうなことを列記します。

  • アクティブなウィンドウにより出力を変えることができる。

→JoyToKeyでは「できセレクトJoyToKey。」で設定を切り替えることができます が、AutoHotKeyでは対象のアプリケーションがアクティブになった時に「勝手 に」設定が切り替わります。

  • 一連のまとまった動作を行うことができる。

→例えば、スイッチを1回押すと (1)特定のファイルをメモ帳で開く (2)文末に カーソルを移動させる (3)日付を挿入する (4)ソフトウェアキーボードを開く (5)以降のスイッチ入力をソフトウェアキーボードへの入力とする までの一連の 動作をいっきに行うことができそうです。

  • マウスの移動も相対移動、絶対移動ともにできる。

→JoyToKeyやGmouseのようにマウスカーソルを連続して移動させることもできま すし、オペレートナビやディスカバーのように予め指定しておいた位置にマウス カーソルをジャンプさせることもできます。すると、マルチメディア絵本の類を スイッチ操作だけで遊べそうです。また、マウスだけで遊べるけどクリック箇所 が定まっているゲームも、スイッチに「マウスカーソルを移動させてからクリッ ク」と定義しておくと、画面上の仮想の「スイッチ」を手元の現実の「スイッ チ」に置き換えることができます。

  • 視覚フィードバックの手段を持っている。

→GUIやToolTipなどの視覚的な出力手段を持っていますので、スキャン入力を記 述することもできそうです。「できリング。」みたいなものも書けるかもしれない。

と、かなり応用が効きそうです。ただし、最大のデメリット

設定はテキストファイルとして記述する

という高いハードルがありますが。(それでも、入力を置き換えるだけなら簡単 な記述で出来ますよ。)

□AutoHotkey - Free Mouse and Keyboard Macro Program with Hotkeys and AutoText http://www.autohotkey.com/

□AutoHotkeyを流行らせるページ http://lukewarm.s101.xrea.com/

□窓の杜 - 【NEWS】ホットキーでWindowsやアプリを自由自在に操作できる「AutoHotkey」 http://www.forest.impress.co.jp/article/2007/06/27/autohotkey.html

AutoHotkey + 「できマウス。」 その 2/2

「できマウス。」につなげた4つのスイッチに様々なマウスクリックを定義するとこんな感じ、

JOY1::Click			;左クリック
JOY2::Click, , , 12, 12		;座標を指定して左クリック(ここではウイン
				;ドウメニューを出す)
JOY3::Click, RIGHT		;右クリック
JOY4::				;以下のスクリプトでドラッグを実現
if(btn=1){
	Click, , UP
	ToolTip
	btn:=0
	return
}
Click, , DOWN
ToolTip, Hold			;左クリックを押下しているかはToolTipで表
btn:=1				;示
return

マウス移動と、アクティブなウインドウにより挙動を変える例です。

#IfWinActive ahk_class Notepad	;メモ帳がアクティブになっていたら
JOY1::Send,{UP}			;カーソルキーの「↑」を送る
#IfWinActive			;メモ帳以外がアクティブになっていたら
JOY1::MouseMove, 0, -10, , R	;マウスカーソルを上に動かす

#IfWinActive ahk_class Notepad	;同じく「↓」
JOY2::Send,{DOWN}
#IfWinActive
JOY2::MouseMove, 0, 10, , R

#IfWinActive ahk_class Notepad	;同じく「←」
JOY3::Send,{LEFT}
#IfWinActive
JOY3::MouseMove, -10, 0, , R

#IfWinActive ahk_class Notepad	;同じく「→」
JOY4::Send,{RIGHT}
#IfWinActive
JOY4::MouseMove, 10, 0, , R
blog comments powered by Disqus