「AutoHotKey / ナビゲータのスライダーをキー入力で操作する」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
スクリプト名 :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)