ノートパソコンを縦向きに使う…画面回転と連動してタッチパッドと矢印キーの方向転換

Last-modified: 2014-08-16 (土) 12:41:50 (2116d)
eeepc-rotate.jpg

EeePC900Xを購入。電車の中で立って使う場合は、90度回転させてディスプレイを縦向き(ポートレート状態)にすると、本のように取り回せていい感じ。

画面の回転のみ

標準ディスプレイドライバが読み込まれているなら、「 Ctrl + Alt + 矢印キー」で画面の向きが変わる。ただし、タッチパッドや矢印キーの方向が変わるわけではないので、タッチパッド操作時にイライラしてしまう。

マウス方向を変更するユーティリティ

マウス方向を変更するユーティリティを作ってくださっている方々がいる。下記はどちらも十分使いやすい。これで、タッチパッド方向と画面方向を合わせることができる。

さかさまうす

http://ara.moo.jp/sakasa/

MouseRotate?

http://motomeet.kicks-ass.net/tools/

画面とマウス方向を連動して変更

EeeRotate?

http://vk.edward.li.googlepages.com/eeerotate

このソフトを使えば、画面方向と連動してマウス方向も変わる。十分使いやすい。矢印キーの方向は変わらないが、慣れれば気にならない。上記のさかさまうすを内包しているようだ。

AutoHotKey?スクリプト

さかさまうす、MouseRotate?は基本機能がDLLとなっていて、外部アプリから呼び出すことができそうなので、AutoHotkey(日本語解説ページ)からDLL呼び出しをして使ってみることにした。

ついでに矢印キーも画面に合わせて方向転換。画面180度回転は使わないので書いてない。

スクリプトを起動後、タスクトレイに常駐します。「 Ctrl + Alt + 矢印キー」を検出すると、さかさまうすDLLを使ってマウスの方向転換とAutoHotkey?のホットキー機能で矢印キーの方向転換を行います。

動作させるには「さかさまうす同梱のDLL」が必要です!作者様のページからさかさまうすをダウンロード後、zipの中に入っているsakasa.dllを、スクリプトと同じフォルダにコピーしてください。

スクリプト

EeePC画面回転.ahk などという名前でテキストファイルとして保存してください

;
; EeePC 画面回転支援AutoHotkeyスクリプト
;
; さかさまうす http://ara.moo.jp/sakasa/
; のDLLを使い、マウスの方向回転を行う。

rotated=0

;
; Ctrl+Alt+← の回転を支援する
;
~^!Left::
	if(rotated=1){
		Gosub,resetRotate
	}
	
	DllCall("LoadLibrary", str, "sakasa.dll")
	DllCall("sakasa.dll\SetRotateAngle","Int",90)
	DllCall("sakasa.dll\SetRotate","Int",1)
	DllCall("sakasa.dll\SetHook")
	
	Hotkey, Up    , pressRight ,On
	Hotkey, Right , pressDown  ,On
	Hotkey, Down  , pressLeft  ,On
	Hotkey, Left  , pressUp    ,On
	
	rotated=1
	
	return
	
;
; Ctrl+Alt+→ の回転を支援する
;
~^!Right::
	if(rotated=1){
		Gosub,resetRotate
	}
	DllCall("LoadLibrary", str, "sakasa.dll")
	DllCall("sakasa.dll\SetRotateAngle","Int",270)
	DllCall("sakasa.dll\SetRotate","Int",1)
	DllCall("sakasa.dll\SetHook")
	
	Hotkey, Up    , pressLeft  ,On
	Hotkey, Right , pressUp    ,On
	Hotkey, Down  , pressRight ,On
	Hotkey, Left  , pressDown  ,On
	
	rotated=1
	
	return
	
;
; Ctrl+Alt+↑は リセット
;
~^!Up::
	if(rotated=1){
		Gosub,resetRotate
	}
	return

	
;
; リセット関数
;
resetRotate:
	DllCall("sakasa.dll\UnSetHook")
	DllCall("FreeLibrary", str, "sakasa.dll")
	Hotkey, Up    , Off
	Hotkey, Right , Off
	Hotkey, Down  , Off
	Hotkey, Left  , Off
	rotated=0
	return


;
; 方向キー関数
;
pressUp:
	Send,{UP} 
	return

pressDown:
	Send,{DOWN} 
	return

pressRight:
	Send,{RIGHT} 
	return

pressLeft:
	Send,{LEFT} 
	return