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

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

AutoHotKey / ナビゲータのスライダーをキー入力で操作する - (2009/12/18 (金) 07:09:38) の1つ前との変更点

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

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

スクリプト名 :HkSaiSlider 用途   :ナビゲータのスライダーをキー入力で操作する 動作環境 : / Win7x64 / SAI 1.1.0 / AutoHotKey Version 1.0.48.05 / Wacom Intuos2 Driver 6.1.2-4 ファイル名:HkSaiSlider.ahk #highlight(lisp){{ ;////////////////////////////////////////////////////////// ; HkSaiSlider ; 無保証・再配布・改変自由 ; ; 動作 AutoHotKey 1.0.48.05 ; 推奨 SAI 1.1.0 ; ; 使用法 ;  ズームイン(変換) vk1Csc079 ;  ズームアウト(無変換) vk1Dsc07B ;////////////////////////////////////////////////////////// #IfWinActive, SAI - ;ahk_class sfl_window_class #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 ;////////////////////////////////////////////////////////// vk1Dsc07B:: ;numpad4:: BlockInput, On ;入力禁止 NavDrag(X,Y,-1,Target_Class,Target_Wintit,Target_Text) ;ズームアウト(無変換) vk1Dsc07B BlockInput, Off ;入力禁止解除 return vk1Csc079:: ;numpad0:: BlockInput, On ;入力禁止 NavDrag(X,Y,+1,Target_Class,Target_Wintit,Target_Text) ;ズームイン(変換) vk1Csc079 BlockInput, Off ;入力禁止解除 return ;////////////////////////////////////////////////////////// ;メイン ; SliderX … スライダのX位置 ; SliderY … スライダのY位置 ; PLM … 加算の横方向 ; TClass … ターゲットのクラス ; TWintit … ターゲットのウィンドウタイトル ; Ttext … ターゲットのテキスト NavDrag(SliderX,SliderY,PLM,TClass,TWintit,Ttext) { ;トラップ(ちょい待機してキー押してなかったらreturn) sleep, 25 if PLM = -1 { GetKeyState, stateZoomOut, vk1Dsc07B,P ;GetKeyState, stateZoomOut, numpad4,P if stateZoomOut = U return } if PLM = +1 { GetKeyState, stateZoomIn, vk1Csc079, P ;GetKeyState, stateZoomIn, numpad0, P if stateZoomIn = U return } 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, vk1Dsc07B,P ;GetKeyState, stateZoomOut, numpad4,P if stateZoomOut = U break } if PLM = +1 { GetKeyState, stateZoomIn, vk1Csc079, P ;GetKeyState, stateZoomIn, numpad0, P if stateZoomIn = U break } } ;左ボタンUP outLParam := nowX | (SliderY << 16) SendMessage, 0x202, 0x0001, outLParam ,%TClass%, %TWintit%, %Ttext% ;シフトUP Send {Shift Up} return } ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// #IfWinActive }} #comment(,disableurl)
スクリプト名 :HkSaiSlider 用途   :ナビゲータのスライダーをキー入力で操作する 動作環境 : / Win7x64 / SAI 1.1.0 / AutoHotKey Version 1.0.48.05 / Wacom Intuos2 Driver 6.1.2-4 ファイル名:HkSaiSlider.ahk #highlight(lisp){{ ;////////////////////////////////////////////////////////// ; HkSaiSlider ; 無保証・再配布・改変自由 ; ; 動作 AutoHotKey 1.0.48.05 ; 推奨 SAI 1.1.0 ; ; 使用法 ;  ズームイン(変換) vk1Csc079 ;  ズームアウト(無変換) vk1Dsc07B ;////////////////////////////////////////////////////////// #IfWinActive, SAI - ;ahk_class sfl_window_class #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 ;////////////////////////////////////////////////////////// vk1Dsc07B:: ;numpad4:: BlockInput, On ;入力禁止 NavDrag(X,Y,-1,Target_Class,Target_Wintit,Target_Text) ;ズームアウト(無変換) vk1Dsc07B BlockInput, Off ;入力禁止解除 return vk1Csc079:: ;numpad0:: BlockInput, On ;入力禁止 NavDrag(X,Y,+1,Target_Class,Target_Wintit,Target_Text) ;ズームイン(変換) vk1Csc079 BlockInput, Off ;入力禁止解除 return ;////////////////////////////////////////////////////////// ;メイン ; SliderX … スライダのX位置 ; SliderY … スライダのY位置 ; PLM … 加算の横方向 ; TClass … ターゲットのクラス ; TWintit … ターゲットのウィンドウタイトル ; Ttext … ターゲットのテキスト NavDrag(SliderX,SliderY,PLM,TClass,TWintit,Ttext) { ;トラップ(ちょい待機してキー押してなかったらreturn) sleep, 25 if PLM = -1 { GetKeyState, stateZoomOut, vk1Dsc07B,P ;GetKeyState, stateZoomOut, numpad4,P if stateZoomOut = U return } if PLM = +1 { GetKeyState, stateZoomIn, vk1Csc079, P ;GetKeyState, stateZoomIn, numpad0, P if stateZoomIn = U return } 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, vk1Dsc07B,P ;GetKeyState, stateZoomOut, numpad4,P if stateZoomOut = U break } if PLM = +1 { GetKeyState, stateZoomIn, vk1Csc079, P ;GetKeyState, stateZoomIn, numpad0, P if stateZoomIn = U break } } ;左ボタンUP outLParam := nowX | (SliderY << 16) SendMessage, 0x202, 0x0001, outLParam ,%TClass%, %TWintit%, %Ttext% ;シフトUP Send {Shift Up} return } ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// ;////////////////////////////////////////////////////////// #IfWinActive }} - ページ分離 -- testmen (2009-12-18 07:09:38) #comment(,disableurl)

表示オプション

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