AutoHotKey > ナビゲータのスライダーをキー入力で操作する

「AutoHotKey / ナビゲータのスライダーをキー入力で操作する」の編集履歴(バックアップ)一覧はこちら

AutoHotKey / ナビゲータのスライダーをキー入力で操作する」(2010/05/18 (火) 06:37:30) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

スクリプト名 :HkSaiSlider(Simple) 用途   :ナビゲータのスライダーをキー入力で操作する 動作環境 : / Win7x64 / SAI 1.1.0 / AutoHotKey Version 1.0.48.05 / Wacom Intuos2 Driver 6.1.2-4 ファイル名:HkSaiSlider.ahk 注意   :misc.ini TabletMouseSimulation = 1 にしないと、       カーソルがSAIウィンドウの上にある時誤動作する。 #highlight(lisp){{ ;////////////////////////////////////////////////////////// ; HkSaiSlider(Simple) ; 無保証・再配布・改変自由 ; ; 動作 AutoHotKey 1.0.48.05 ; 推奨 SAI 1.1.0 ; ; 使用法 ;  ズームイン(変換) vk1Csc079 ;  ズームアウト(無変換) vk1Dsc07B ;  このソースの最下部にある、キー設定の部分を変更すれば ;  お好みのキーに割り当てられます。 ; ; 注意 ;  misc.ini TabletMouseSimulation = 1 にしないと、 ;  カーソルがSAIウィンドウの上にある時誤動作する。 ; ; 2009-12-23 ;  カイゼン活動 ;////////////////////////////////////////////////////////// #MaxThreads 1 #MaxThreadsPerHotkey 1 #HotkeyInterval 1000 ; This is the default value (milliseconds). #MaxHotkeysPerInterval 50 ; This is the default value. ;////////////////////////////////////////////////////////// ; 設定 /////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// ; ; ナビゲータは独立ウィンドウか ; 設定: ; 0 ... メインウィンドウと統合 ; 1 ... 独立(SAI1.1.0~使用可) ; IsNavigatorIndependent = 1 ; 表示倍率 or 回転角度 ; 設定: ; 0 ... 表示倍率 ; 1 ... 回転角度 ; TargetSlider = 0 ; ;////////////////////////////////////////////////////////// ;設定ここまで //////////////////////////////////////////// ;////////////////////////////////////////////////////////// Target_Wintit=SAI if IsNavigatorIndependent=1 Target_Wintit=ナビゲータ if TargetSlider=0 { Target_Class=sfl_window_class3 if IsNavigatorIndependent=1 Target_Class=sfl_window_class2 Target_Text=表示倍率 } if TargetSlider=1 { Target_Class=sfl_window_class7 if IsNavigatorIndependent=1 Target_Class=sfl_window_class6 Target_Text=回転角度 } ;////////////////////////////////////////////////////////// ;スライダ位置の検出 ControlGetPos, x, y, w, h, %Target_Class%, %Target_Wintit%, %Target_Text% X:=x+(w/2) ;////////////////////////////////////////////////////////// SendMode Play return ;////////////////////////////////////////////////////////// ;メイン ; SliderX … スライダのX位置 ; SliderY … スライダのY位置 ; PLM … 加算の横方向 ; TClass … ターゲットのクラス ; TWintit … ターゲットのウィンドウタイトル ; Ttext … ターゲットのテキスト NavDrag(SliderX,SliderY,PLM,TClass,TWintit,Ttext) { ;押されたホットキーを保存 PushThishotkey=%A_Thishotkey% ;トラップ(ちょい待機してキー押してなかったらreturn) sleep, 25 if PLM = -1 { GetKeyState, stateZoomOut, %PushThishotkey%,P if stateZoomOut = U return } if PLM = +1 { GetKeyState, stateZoomIn, %PushThishotkey%, P if stateZoomIn = U return } ;入力禁止 BlockInput, MouseMove ;On nowX:=SliderX ;スライド操作初期位置 minADD:=PLM*0.5 ;増加単位 ;シフトDOWN Send {Shift Down} ;左ボタンDOWN clickLParam := nowX | (SliderY << 16) SendMessage, 0x201, 0x0001, ClickLParam ,%TClass%, %TWintit%, %Ttext% ;キーDOWN中の処理 Loop { ;座標加算 nowX := nowX + minADD ;スライド処理 moveLParam := nowX | (SliderY << 16) SendMessage, 0x200, 0x0001, moveLParam ,%TClass%, %TWintit%, %Ttext% ;脱出処理 if PLM = -1 { GetKeyState, stateZoomOut, %PushThishotkey%,P if stateZoomOut = U break } if PLM = +1 { GetKeyState, stateZoomIn, %PushThishotkey%, P if stateZoomIn = U break } } ;左ボタンUP outLParam := nowX | (SliderY << 16) SendMessage, 0x202, 0x0001, outLParam ,%TClass%, %TWintit%, %Ttext% ;シフトUP Send {Shift Up} ;入力禁止解除 BlockInput, MouseMoveOff return } ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// #IfWinActive, SAI - ahk_class sfl_window_class ;////////////////////////////////////////////////////////// ;ズームアウト(無変換) vk1Dsc07B vk1Dsc07B::NavDrag(X,Y,-1,Target_Class,Target_Wintit,Target_Text) ;ズームイン(変換) vk1Csc079 vk1Csc079::NavDrag(X,Y,+1,Target_Class,Target_Wintit,Target_Text) #IfWinActive ;Esc::exitapp ; テスト用 }} - ページ分離 -- testmen (2009-12-18 07:09:38) - 自分で使ってるのでシンプル版として更新 -- testmen (2009-12-23 04:20:19)
スクリプト名 :HkSaiSlider(Simple) 用途   :ナビゲータのスライダーをキー入力で操作する 動作環境 : / Win7x64 / SAI 1.1.0 / AutoHotKey Version 1.0.48.05 / Wacom Intuos2 Driver 6.1.2-4 ファイル名:HkSaiSlider.ahk 注意   :misc.ini TabletMouseSimulation = 1 にしないと、       カーソルがSAIウィンドウの上にある時誤動作する。 - ページ分離 -- testmen (2009-12-18 07:09:38) - 自分で使ってるのでシンプル版として更新 -- testmen (2009-12-23 04:20:19) コメントは1つ上の階層へどうぞ。 #highlight(lisp){{ ;////////////////////////////////////////////////////////// ; HkSaiSlider(Simple) ; 無保証・再配布・改変自由 ; ; 動作 AutoHotKey 1.0.48.05 ; 推奨 SAI 1.1.0 ; ; 使用法 ;  ズームイン(変換) vk1Csc079 ;  ズームアウト(無変換) vk1Dsc07B ;  このソースの最下部にある、キー設定の部分を変更すれば ;  お好みのキーに割り当てられます。 ; ; 注意 ;  misc.ini TabletMouseSimulation = 1 にしないと、 ;  カーソルがSAIウィンドウの上にある時誤動作する。 ; ; 2009-12-23 ;  カイゼン活動 ;////////////////////////////////////////////////////////// #MaxThreads 1 #MaxThreadsPerHotkey 1 #HotkeyInterval 1000 ; This is the default value (milliseconds). #MaxHotkeysPerInterval 50 ; This is the default value. ;////////////////////////////////////////////////////////// ; 設定 /////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// ; ; ナビゲータは独立ウィンドウか ; 設定: ; 0 ... メインウィンドウと統合 ; 1 ... 独立(SAI1.1.0~使用可) ; IsNavigatorIndependent = 1 ; 表示倍率 or 回転角度 ; 設定: ; 0 ... 表示倍率 ; 1 ... 回転角度 ; TargetSlider = 0 ; ;////////////////////////////////////////////////////////// ;設定ここまで //////////////////////////////////////////// ;////////////////////////////////////////////////////////// Target_Wintit=SAI if IsNavigatorIndependent=1 Target_Wintit=ナビゲータ if TargetSlider=0 { Target_Class=sfl_window_class3 if IsNavigatorIndependent=1 Target_Class=sfl_window_class2 Target_Text=表示倍率 } if TargetSlider=1 { Target_Class=sfl_window_class7 if IsNavigatorIndependent=1 Target_Class=sfl_window_class6 Target_Text=回転角度 } ;////////////////////////////////////////////////////////// ;スライダ位置の検出 ControlGetPos, x, y, w, h, %Target_Class%, %Target_Wintit%, %Target_Text% X:=x+(w/2) ;////////////////////////////////////////////////////////// SendMode Play return ;////////////////////////////////////////////////////////// ;メイン ; SliderX … スライダのX位置 ; SliderY … スライダのY位置 ; PLM … 加算の横方向 ; TClass … ターゲットのクラス ; TWintit … ターゲットのウィンドウタイトル ; Ttext … ターゲットのテキスト NavDrag(SliderX,SliderY,PLM,TClass,TWintit,Ttext) { ;押されたホットキーを保存 PushThishotkey=%A_Thishotkey% ;トラップ(ちょい待機してキー押してなかったらreturn) sleep, 25 if PLM = -1 { GetKeyState, stateZoomOut, %PushThishotkey%,P if stateZoomOut = U return } if PLM = +1 { GetKeyState, stateZoomIn, %PushThishotkey%, P if stateZoomIn = U return } ;入力禁止 BlockInput, MouseMove ;On nowX:=SliderX ;スライド操作初期位置 minADD:=PLM*0.5 ;増加単位 ;シフトDOWN Send {Shift Down} ;左ボタンDOWN clickLParam := nowX | (SliderY << 16) SendMessage, 0x201, 0x0001, ClickLParam ,%TClass%, %TWintit%, %Ttext% ;キーDOWN中の処理 Loop { ;座標加算 nowX := nowX + minADD ;スライド処理 moveLParam := nowX | (SliderY << 16) SendMessage, 0x200, 0x0001, moveLParam ,%TClass%, %TWintit%, %Ttext% ;脱出処理 if PLM = -1 { GetKeyState, stateZoomOut, %PushThishotkey%,P if stateZoomOut = U break } if PLM = +1 { GetKeyState, stateZoomIn, %PushThishotkey%, P if stateZoomIn = U break } } ;左ボタンUP outLParam := nowX | (SliderY << 16) SendMessage, 0x202, 0x0001, outLParam ,%TClass%, %TWintit%, %Ttext% ;シフトUP Send {Shift Up} ;入力禁止解除 BlockInput, MouseMoveOff return } ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// #IfWinActive, SAI - ahk_class sfl_window_class ;////////////////////////////////////////////////////////// ;ズームアウト(無変換) vk1Dsc07B vk1Dsc07B::NavDrag(X,Y,-1,Target_Class,Target_Wintit,Target_Text) ;ズームイン(変換) vk1Csc079 vk1Csc079::NavDrag(X,Y,+1,Target_Class,Target_Wintit,Target_Text) #IfWinActive ;Esc::exitapp ; テスト用 }}

表示オプション

横に並べて表示:
変化行の前後のみ表示: