Tww = WindowsForms10.Window.8.app45;ウィンドウクラス名
Twc = WindowsForms10.SysTabControl32.app451;タブのクラス名
$WheelUp::
IfWinActive,ahk_class %Tww%
MouseGetPos,,,,cn
IfEqual, cn, %twc%
Send,{F2}
return
return
$WheelDown::
IfWinActive,ahk_class %Tww%
MouseGetPos,,,,cn
IfEqual, cn, %twc%
Send,{F3}
return
return
2chブラウザのtwintail2でホイールによるタブ切り替えを実装するために上のようなコードを
書いたんだけど、この条件を満たさないときにWheelUp&Downをそのまま送る様にするには
どんなコードを追加すれば良いのん?
一応環境書いておきます。 XP Pro sp1 AHK 1.0.29
IfWinActive,ank_class %Tww%
hoge
else
Send,{WheelDown}
return
299 :
297:05/03/03 20:05:42 ID:un1waaJf
>>298 レスd
自分もそれと似たようなコードを書いて、elseに対応するifが無いぞというエラーが出るので
どうしたもんかと思ってたんですが、どうやら原因はreturnを入れすぎていたことみたいっす。
if文の後には必ず書かなきゃいけないと思い込んでました。
ということで、正常に実行できたスクリプトも後学のために貼っておきます。
もっと効率の良い書き方があったら教えて下され。
Tww = WindowsForms10.Window.8.app45
Twc = WindowsForms10.SysTabControl32.app451
$WheelUp::
IfWinActive, ahk_class %Tww%
MouseGetPos,,,,cn
IfEqual, cn, %Twc%
Send,{F2}
else IfWinNotActive Or IfNotEqual
Send,{WheelUp}
return
$WheelDown::
IfWinActive, ahk_class %Tww%
MouseGetPos,,,,cn
IfEqual, cn, %Twc%
Send,{F3}
else IfWinNotActive Or IfNotEqual
Send,{WheelDown}
return
>299
>IfWinActive, ahk_class %Tww%
>MouseGetPos,,,,cn
>IfEqual, cn, %Twc%
>Send,{F2}
この書き方だと アクティブウィンドウがツインテールじゃないときも
IfEqual, cn, %Twc% 以下を実行してしまうので{}で括ったほうがよい
WheelUp::
WheelDown::
/* フォーカスがツインテールのタブ上にある時は特殊処理 */
IfWinActive, ahk_class %Tww%
{
MouseGetPos,,,,cn
IfEqual, cn, %Twc%
{
ifEqual A_Thishotkey, WheelUp, Send,{F2}
Else Send,{F3}
return
}
}
/* それ以外は普通にホイール */
Send,{%A_Thishotkey%}
return
>else IfWinNotActive Or IfNotEqual
これはちょっとわからん、つかこんな書き方ってできるんだ? エラーにならんのか