eamat @Cabinet
http://w.atwiki.jp/eamat/
eamat @Cabinet
ja
2019-04-22T23:11:20+09:00
1555942280
-
MUS.ahk
https://w.atwiki.jp/eamat/pages/29.html
<div style="font-family:'MS Gothic', monospace;margin-left:1em;line-height:130%;">
<table style="border-collapse:collapse;border-width:0;"><tbody><tr><td style="border-style:solid;border-width:0px 1px 0px 0px;padding:3pt;text-align:right;color:#5A4F25;background-color:#FFFCF2;">
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27<br />
28<br />
29<br />
30<br />
31<br />
32<br />
33<br />
34<br />
35<br />
36<br />
37<br />
38<br />
39<br />
40<br />
41<br />
42<br />
43<br />
44<br />
45<br />
46<br />
47<br />
48<br />
49<br />
50<br />
51<br />
52<br />
53<br />
54<br />
55<br />
56<br />
57<br />
58<br />
59<br />
60<br />
61<br />
62<br />
63<br />
64<br />
65<br />
66<br />
67<br />
68<br />
69<br />
70<br />
71<br />
72<br />
73<br />
74<br />
75<br />
76<br />
77<br />
78<br />
79<br />
80<br />
81<br />
82<br />
83<br />
84<br />
85<br />
86<br />
87<br />
88<br />
89<br />
90<br />
91<br />
92<br />
93<br />
94<br />
95<br />
96<br />
97<br />
98<br />
99<br />
100<br />
101<br />
102<br />
103<br />
104<br />
105<br />
106<br />
107<br />
108<br />
109<br />
110<br />
111<br />
112<br />
113<br />
114<br />
115<br />
116<br />
117<br />
118<br />
119<br />
120<br />
121<br />
122<br />
123<br />
124<br />
125<br />
126<br />
127<br />
128<br />
129<br />
130<br />
131<br />
132<br />
133<br />
134<br />
135<br />
136<br />
137<br />
138<br />
139<br />
140<br />
141<br />
142<br />
143<br />
144<br />
145<br />
146<br />
147<br />
148<br />
149<br />
150<br />
151<br />
152<br />
153<br />
154<br />
155<br />
156<br />
157<br />
158<br />
159<br />
160<br />
161<br />
162<br />
163<br />
164<br />
165<br />
166<br />
167<br />
168<br />
169<br />
170<br />
171<br />
172<br />
173<br />
174<br />
175<br />
176<br />
177<br />
178<br />
179<br />
180<br />
181<br />
182<br />
183<br />
184<br />
185<br />
186<br />
187<br />
188<br />
189<br />
190<br />
191<br />
192</td>
<td style="white-space:nowrap;padding:5pt;color:#373737;background-color:#FFFCF2;">
<div style="color:#373737;background-color:#FFFCF2;"><span style="color:#008000;background-color:#FFFCF2;">/************************************************************************</span><br /><span style="color:#008000;background-color:#FFFCF2;"> マウス関数群
(MUS.ahk)</span><br /><span style="color:#008000;background-color:#FFFCF2;"> グローバル変数 :
なし</span><br /><span style="color:#008000;background-color:#FFFCF2;"> 各関数の依存性 :
なし(必要関数だけ切出してコピペでも使えます)</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;"> AutoHotkey Version:
1.1.24.00</span><br /><span style="color:#008000;background-color:#FFFCF2;"> Language:
Japanease</span><br /><span style="color:#008000;background-color:#FFFCF2;"> Platform:
Win9x/NT</span><br /><span style="color:#008000;background-color:#FFFCF2;"> Author:
eamat. 2009.01.07</span><br /><span style="color:#008000;background-color:#FFFCF2;">************************************************************************</span><br /><span style="color:#008000;background-color:#FFFCF2;">2012.11.09 マルチディスプレイ
マイナス座標値対策</span><br /><span style="color:#008000;background-color:#FFFCF2;">2012.11.13
関数名見直し</span><br /><span style="color:#008000;background-color:#FFFCF2;">
MUS_CheckOnTitleBar → MUS_IsTitleBar</span><br /><span style="color:#008000;background-color:#FFFCF2;">
MUS_CheckOnTitleBarEX → MUS_GetTitleBarPos</span><br /><span style="color:#008000;background-color:#FFFCF2;">2016.11.18
MS-Officeのタイトルバーに個別対応</span><br /><span style="color:#008000;background-color:#FFFCF2;">2019.04.22
CoordModeの不要処理削除 (def_cmode)</span><br /><span style="color:#008000;background-color:#FFFCF2;">*/</span><br /><span style="color:#008000;background-color:#FFFCF2;">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 動作確認用 内部ルーチン</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
単体起動時のテスト用なので削除しても問題なし</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ※
Hotkey設定してますが#Include時は AutoexecueSectionは</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
無視されるだけなのでほっといていいです。</span>
<div style="color:#000080;background-color:#EEEEEE;">
_MUS_Autoexecue_Sample:</div>
<span style="color:#5353FF;background-color:#FFFCF2;">Hotkey</span>,~<span style="color:#EE7264;background-color:#FFFCF2;">Rbutton</span>,_MUS_SampleClick<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Hotkey</span>,~<span style="color:#EE7264;background-color:#FFFCF2;">Mbutton</span>,_MUS_SampleTitlebar<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Hotkey</span>,+<span style="color:#EE7264;background-color:#FFFCF2;">ESC</span>,_MUS_SampleExit<br /><span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<div style="color:#000080;background-color:#EEEEEE;">_MUS_SampleClick:</div>
<span style="color:#008000;background-color:#FFFCF2;">;トリプル以上を取りたい場合はタイムアウト値を多めにする必要があります</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Tooltip</span>,
<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#000080;background-color:#FFFCF2;">"MUS_MultiClickCheck()のテスト`nクリック回数:"</span>
MUS_MultiClickCheck(<span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,<span style="color:#0000FF;background-color:#FFFCF2;">800</span>)<br /><span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<div style="color:#000080;background-color:#EEEEEE;">_MUS_SampleTitlebar:</div>
_MUS_test()<br /><span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<div style="color:#000080;background-color:#EEEEEE;">_MUS_SampleExit:</div>
<span style="color:#5353FF;background-color:#FFFCF2;">ExitApp</span>
<div style="color:#FF0000;background-color:#FFE6EE;">_MUS_test() {</div>
r1 := MUS_IsTitleBar(<span style="color:#0000FF;background-color:#FFFCF2;">0</span>)<br />
r2 := MUS_IsTitleBar(<span style="color:#0000FF;background-color:#FFFCF2;">1</span>)<br />
r3 := MUS_GetTitleBarPos(h3,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>)<br />
r4 := MUS_GetTitleBarPos(h4,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>)<br />
msg := <span style="color:#000080;background-color:#FFFCF2;">"---マウスがタイトルバー上にあるかどうか---`n"</span><br />
. <span style="color:#000080;background-color:#FFFCF2;">"MUS_IsTitleBar(MdiChild=0)`n`n"</span><br />
. <span style="color:#000080;background-color:#FFFCF2;">"MDI子ウィンドウはみない
- > "</span> r1 <span style="color:#000080;background-color:#FFFCF2;">"`n"</span><br />
. <span style="color:#000080;background-color:#FFFCF2;">"MDI子ウィンドウもみる - > "</span> r2
<span style="color:#000080;background-color:#FFFCF2;">"`n`n"</span><br />
. <span style="color:#000080;background-color:#FFFCF2;">"---マウスがタイトルバー上のどこにあるか---`n"</span><br />
. <span style="color:#000080;background-color:#FFFCF2;">"MUS_GetTitleBarPos(byref rhWnd,
MdiChild=0)`n`n"</span><br />
. <span style="color:#000080;background-color:#FFFCF2;">"MDI子ウィンドウはみない
- > "</span> r3 <span style="color:#000080;background-color:#FFFCF2;">"
"</span> h3 <span style="color:#000080;background-color:#FFFCF2;">"`n"</span><br />
. <span style="color:#000080;background-color:#FFFCF2;">"MDI子ウィンドウもみる - > "</span> r4
<span style="color:#000080;background-color:#FFFCF2;">" "</span> h4<br />
<span style="color:#5353FF;background-color:#FFFCF2;">tooltip</span>,<span style="color:#EE7264;background-color:#FFFCF2;">%</span>msg<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;---------------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 汎用関数</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
マウスがタイトルバー上にあるかチェックし、ウィンドウハンドルを返す</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 対象: AHK
v1.0.43.06以降</span><br /><span style="color:#008000;background-color:#FFFCF2;">; in MdiChild
1:MDI子ウィンドウを対象に含める</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 戻り値: ウィンドウハンドル (0:Not
Found)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">;MUS_CheckOnTitleBar(MdiChild=0,
def_cmode=1) {</span>
<div style="color:#FF0000;background-color:#FFE6EE;">
MUS_IsTitleBar(MdiChild=0) {</div>
<span style="color:#008000;background-color:#FFFCF2;">;---
マウス座標値直下のコントロールハンドル取得 ---</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">CoordMode</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Mouse</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Screen</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,sX,sY,<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span>,chWnd,<span style="color:#0000FF;background-color:#FFFCF2;">3</span> <span style="color:#008000;background-color:#FFFCF2;">;2007.03.30</span><br />
sY += (sY < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span> <span style="color:#008000;background-color:#FFFCF2;">;マルチディスプレイ対策 2012.11.09</span><br />
sX += (sX < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SendMessage</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x84</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,<span style="color:#EE7264;background-color:#FFFCF2;">%</span> (sY<<<span style="color:#0000FF;background-color:#FFFCF2;">16</span>)|sX,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>chWnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;WM_NCHITTEST</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span> =
<span style="color:#0000FF;background-color:#FFFCF2;">0xFFFFFFFF</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,,,,chWnd,<span style="color:#0000FF;background-color:#FFFCF2;">2</span><br />
<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span> :=
((MdiChild) && (<span style="color:#000080;background-color:#FFFCF2;">""</span> <> chWnd)) ? chWnd :
<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGet</span>,
WinStyle, <span style="color:#9425A7;background-color:#FFFCF2;">Style</span>, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; MS-Office タイトルバー対策
2016.11.18</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,
, , ,clsnn,<span style="color:#0000FF;background-color:#FFFCF2;">1</span><br />
<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span> :=
<span style="color:#4A0095;background-color:#FFFCF2;">Instr</span>(clsnn,<span style="color:#000080;background-color:#FFFCF2;">"NetUIHWND"</span>) ? chWnd :
<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;---
マウスがタイトルバー上にあるかチェック ---</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (WinStyle
& <span style="color:#0000FF;background-color:#FFFCF2;">0x00C00000</span> =
<span style="color:#0000FF;background-color:#FFFCF2;">0x00C00000</span>) {
<span style="color:#008000;background-color:#FFFCF2;">;WS_CAPTION</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SendMessage</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x84</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,<span style="color:#EE7264;background-color:#FFFCF2;">%</span> (sY<<<span style="color:#0000FF;background-color:#FFFCF2;">16</span>)|sX,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;WM_NCHITTEST</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span> =
<span style="color:#0000FF;background-color:#FFFCF2;">2</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><br />
}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#0000FF;background-color:#FFFCF2;">0</span>
<span style="color:#008000;background-color:#FFFCF2;">;マウス下:タイトルなし</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
マウスがタイトルバー上の何処にあるかチェックして返す</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 対象: AHK v1.0.43.06以降
作成 : 2008.11.29</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; out rhWnd
マウス下ウィンドウハンドル</span><br /><span style="color:#008000;background-color:#FFFCF2;">; in MdiChild
1:MDI子ウィンドウを対象に含める</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 戻り値</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2 (HTCAPTION)
キャプションバー上にある</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 3 (HTSYSMENU)
システムメニューアイコン上</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 8 (HTMINBUTTON)
[_] アイコン化ボタン上にある</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 9 (HTMAXBUTTON)
[□] 最大化ボタン上にある</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 20
[x] 閉じるボタン上にある</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 21
[?] ヒントボタン上にある</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 0
タイトルバー上でない</span><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">;MUS_CheckOnTitleBarEX(byref rhWnd,
MdiChild=0, def_cmode=1) {</span>
<div style="color:#FF0000;background-color:#FFE6EE;">MUS_GetTitleBarPos(byref
rhWnd, MdiChild=0) {</div>
<span style="color:#008000;background-color:#FFFCF2;">;---
マウス座標値直下のコントロールハンドル取得 ---</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">CoordMode</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Mouse</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Screen</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,sX,sY,<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span>,chWnd,<span style="color:#0000FF;background-color:#FFFCF2;">3</span> <span style="color:#008000;background-color:#FFFCF2;">;2007.03.30</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,
, , ,clsnn,<span style="color:#0000FF;background-color:#FFFCF2;">1</span>
<span style="color:#008000;background-color:#FFFCF2;">;2016.11.18</span><br />
sY += (sY < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span> <span style="color:#008000;background-color:#FFFCF2;">;マルチディスプレイ対策 2012.11.09</span><br />
sX += (sX < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SendMessage</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x84</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,<span style="color:#EE7264;background-color:#FFFCF2;">%</span> (sY<<<span style="color:#0000FF;background-color:#FFFCF2;">16</span>)|sX,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>chWnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;WM_NCHITTEST</span><br />
cret := <span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span> =
<span style="color:#0000FF;background-color:#FFFCF2;">0xFFFFFFFF</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,,,,chWnd,<span style="color:#0000FF;background-color:#FFFCF2;">2</span><br />
<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span> :=
((MdiChild) && (<span style="color:#000080;background-color:#FFFCF2;">""</span> <> chWnd)) ? chWnd :
<span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGet</span>,
WinStyle, <span style="color:#9425A7;background-color:#FFFCF2;">Style</span>, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;---
マウスがタイトルバー上にあるかチェック ---</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (WinStyle
& <span style="color:#0000FF;background-color:#FFFCF2;">0x00C00000</span> =
<span style="color:#0000FF;background-color:#FFFCF2;">0x00C00000</span>) {
<span style="color:#008000;background-color:#FFFCF2;">;WS_CAPTION</span><br />
rhWnd := <span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SendMessage</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x84</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,<span style="color:#EE7264;background-color:#FFFCF2;">%</span> (sY<<<span style="color:#0000FF;background-color:#FFFCF2;">16</span>)|sX,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hWnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;WM_NCHITTEST</span><br />
ret := <span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
<span style="color:#4A0095;background-color:#FFFCF2;">RegExMatch</span>(ret,
<span style="color:#000080;background-color:#FFFCF2;">"^(2|3|8|9|20|21)"</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
ret<br /><br />
<span style="color:#008000;background-color:#FFFCF2;"> ; MS-Office
タイトルバー対策 2016.11.18</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">else</span>
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> <span style="color:#4A0095;background-color:#FFFCF2;">Instr</span>(clsnn,<span style="color:#000080;background-color:#FFFCF2;">"NetUIHWND"</span>) &&
<span style="color:#4A0095;background-color:#FFFCF2;">RegExMatch</span>(cret,
<span style="color:#000080;background-color:#FFFCF2;">"^2"</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span> cret<br />
}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#0000FF;background-color:#FFFCF2;">0</span>
<span style="color:#008000;background-color:#FFFCF2;">;マウス下:タイトルなし</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
割と厳密な多重クリックチェック</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 対象: AHK
v1.0.34以降</span><br /><span style="color:#008000;background-color:#FFFCF2;">; in button
対象マウスボタン</span><br /><span style="color:#008000;background-color:#FFFCF2;">; MaxCount
チェックする最大クリック回数(0で無制限)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; timout
タイムアウト(デフォルト=システムWクリック時間)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 戻り値 :
マウスクリック回数</span><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++</span>
<div style="color:#FF0000;background-color:#FFE6EE;">
MUS_MultiClickCheck(button,MaxCount=2,timout=0) {</div>
<span style="color:#9425A7;background-color:#FFFCF2;">button</span> :=
<span style="color:#4A0095;background-color:#FFFCF2;">RegExReplace</span>(<span style="color:#9425A7;background-color:#FFFCF2;">button</span>,<span style="color:#000080;background-color:#FFFCF2;">"i)[\+\^!#<>\*~\$]"</span>,<span style="color:#000080;background-color:#FFFCF2;">""</span>)
<span style="color:#008000;background-color:#FFFCF2;">;モデファイヤ削除</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;1クリック目が発生してないなら即終了</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">GetKeyState</span>,
push, <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">button</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span>,
P<br />
<span style="color:#5353FF;background-color:#FFFCF2;">ifEqual</span>,push,U, <span style="color:#5353FF;background-color:#FFFCF2;">return</span> <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;--- タイムアウト時間セット
---</span><br />
timout := (!timout) ? <span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>(<span style="color:#000080;background-color:#FFFCF2;">"User32.dll\GetDoubleClickTime"</span>,Int)
: timout<br />
timout += <span style="color:#EE7264;background-color:#FFFCF2;">A_TickCount</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;--- ダブルクリック位置許容範囲を取得
---</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,
x1 , y1<br />
<span style="color:#5353FF;background-color:#FFFCF2;">SysGet</span>,cx,<span style="color:#0000FF;background-color:#FFFCF2;">36</span> <span style="color:#008000;background-color:#FFFCF2;">;SM_CXDOUBLECLK</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SysGet</span>,cy,<span style="color:#0000FF;background-color:#FFFCF2;">37</span> <span style="color:#008000;background-color:#FFFCF2;">;SM_CYDOUBLECLK</span><br /><br />
ph = <span style="color:#0000FF;background-color:#FFFCF2;">1</span><br />
MaxPh := MaxCount*<span style="color:#0000FF;background-color:#FFFCF2;">2</span> <span style="color:#0000FF;background-color:#FFFCF2;">-1</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Loop</span><br />
{ <span style="color:#008000;background-color:#FFFCF2;">;---
マウスクリック/解除チェック ---</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;奇数フェーズ:クリック解除待ち /
偶数フェーズ:クリック待ち</span><br />
opt := (<span style="color:#0000FF;background-color:#FFFCF2;">1</span>
= <span style="color:#4A0095;background-color:#FFFCF2;">mod</span>(ph,<span style="color:#0000FF;background-color:#FFFCF2;">2</span>)) ? <span style="color:#000080;background-color:#FFFCF2;">"U"</span> : <span style="color:#000080;background-color:#FFFCF2;">"D"</span> <span style="color:#008000;background-color:#FFFCF2;">;奇数フェーズ:</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">KeyWait</span>,
<span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">button</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span>, <span style="color:#EE7264;background-color:#FFFCF2;">%</span>opt<span style="color:#EE7264;background-color:#FFFCF2;">%</span> T0.01<br />
ph += (!<span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">1</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">A_TickCount</span> >
timout) || ((<span style="color:#0000FF;background-color:#FFFCF2;">0</span>
< MaxCount) && (ph > MaxCount*<span style="color:#0000FF;background-color:#FFFCF2;">2-1</span>))<br />
<span style="color:#5353FF;background-color:#FFFCF2;">break</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;--- マウス移動量チェック
---</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>, x2 , y2<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ((x1
> x2) && (x1-x2 > cx)) || ((x2 > x1) && (x2-x1 >
cx))<br />
|| ((y1 > y2) && (y1-y2 > cy)) || ((y2 > y1)
&& (y2-y1 > cy))<br />
<span style="color:#5353FF;background-color:#FFFCF2;">break</span><br />
}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#EE7264;background-color:#FFFCF2;">%</span> ph //
<span style="color:#0000FF;background-color:#FFFCF2;">2</span><br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
マウス下コントロールのハンドルを取得</span><br /><span style="color:#008000;background-color:#FFFCF2;">;++++++++++++++++++++++++++++++++++++++++++++++++++++</span>
<div style="color:#FF0000;background-color:#FFE6EE;">MUS_GetCtrlHwnd() {</div>
<span style="color:#5353FF;background-color:#FFFCF2;">CoordMode</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Mouse</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Screen</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,x,y,<span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span>,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,<span style="color:#0000FF;background-color:#FFFCF2;">3</span><br />
y += (y < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span> <span style="color:#008000;background-color:#FFFCF2;">;マルチディスプレイ対策 2012.11.09</span><br />
x += (x < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SendMessage</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x84</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,<span style="color:#EE7264;background-color:#FFFCF2;">%</span> (y<<<span style="color:#0000FF;background-color:#FFFCF2;">16</span>)|x,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%ctrl%</span> <span style="color:#008000;background-color:#FFFCF2;">;WM_NCHITTEST</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span> =
<span style="color:#0000FF;background-color:#FFFCF2;">0xFFFFFFFF</span>)
<span style="color:#008000;background-color:#FFFCF2;">; -1:
HTTRANSPARENT</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,,,,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,<span style="color:#0000FF;background-color:#FFFCF2;">2</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span><br />
}<br />
</div>
</td>
</tr></tbody></table></div>
2019-04-22T23:11:20+09:00
1555942280
-
MUS.txt
https://w.atwiki.jp/eamat/pages/28.html
=============================================================================
【 名 称 】 Autohotkey マウス関数群 (コピペ/組込用)(MUS.ahk)
【製作言語】 AutoHotkey Scripts (http://www.autohotkey.com/)
【 更新日 】 2019.04.22
【 製作者 】 eamat.
【 URL 】 http://www6.atwiki.jp/eamat/
=============================================================================
.■概要
Autohotkey 関数ライブラリ用スクリプト集
本家 / AHK_L(A32/U32/U64) 対応
.■動作環境
v1.0.47以降くらい? ソース内コメント参照
OS: 9x/NT系
.■関数一覧
各関数の使用サンプル
AutoExecute部に動作確認用スクリプトを入れてあるので、
単体起動して挙動確認して下さい。
MUS_IsTitleBar() マウスがタイトルバー上にある時、ハンドルを返す
MUS_GetTitleBarPos() マウスポインタがタイトルバー上の何処に乗ってるか
MUS_MultiClickCheck() 割と厳密な多重クリックチェック
MUS_GetCtrlHwnd() マウス下コントロールのハンドルを取得
.■使用方法
ANSI\ :ANSI版 (本家/A32)
UTF8\ :UTF-8版 (U32/U64) ※ファイル形式違うだけ。中身はどちらも一緒です。
..◆組込元で #Include MUS.ahkして各関数を呼び出して使用
..◆関数ライブラリスクリプトとして使用
AutoHotkey.exeのあるフォルダ内の「Lib」フォルダ、もしくは
「%A_MyDocuments%\AutoHotkey\Lib\」に入れておけば#Includeなしで使えます。
・必要関数だけをスクリプトにコピペして使用
(各関数間に依存関係はありません。)
.■削除方法
全てのファイルを削除して下さい。
本スクリプトではレジストリへの読み書きはしていません。
.■改変・再配布
改変・再配布ともにご自由にどうぞ
一次配布場所
http://www6.atwiki.jp/eamat/
http://gist.github.com/eamatt
.■履歴
2019.04.22 CoordModeの不要処理削除 (def_cmode)
2016.11.18 MS-Officeのタイトルバーに対応
クラス名を見て個別に対応するようにした
2012.11.13 (公開) 関数名見直し
2012.11.09 マルチディスプレイ マイナス座標値対策
2009.01.07 はてブで小出しにしてた関数群まとめ
2019-04-22T23:09:07+09:00
1555942147
-
マウス関数群
https://w.atwiki.jp/eamat/pages/27.html
#right(){&color(#cccccc){&counter(total)}}
*マウス関数群 (MUS.ahk)
マウス下コントロールの取得やクリック回数別振り分けなど
AutoHotkey_L (A32/U32/U64)に対応
***ダウンロード
-[[Mus20190422.zip>https://img.atwikiimg.com/www6.atwiki.jp/eamat/attach/27/9/Mus20190422.zip]] (本家,A32/U32/U64 同梱)
// -旧バージョンは[[このへん>>http://www6.atwiki.jp/_pub/eamat/MyScript/Lib/]]
***内容
-説明書 [[MUS.txt]]
-ソース [[MUS.ahk]]
***使用方法
・#Includeで組み込む
・Libフォルダにコピーして関数ライブラリスクリプトとして
・必要部分だけコピペで切り出す、等
***関数一覧
|MUS_IsTitleBar( )|マウスがタイトルバー上にある時、ハンドルを返す|
|MUS_GetTitleBarPos( )|マウスポインタがタイトルバー上の何処に乗ってるか|
|MUS_MultiClickCheck( )|割と厳密な多重クリックチェック|
|MUS_GetCtrlHwnd( )|マウス下コントロールのハンドルを取得|
***更新履歴
>:2019.04.22 | CoordModeの不要処理削除 (def_cmode)
>:2016.11.18 (未公開) | MS-Officeのタイトルバーに対応
>:2012.11.13 | (公開) 関数名見直し
>:2012.11.09 | マルチディスプレイ マイナス座標値対策
>:2009.01.07 | はてブで小出しにしてた関数群まとめ
2019-04-22T23:08:01+09:00
1555942081
-
ホイールスクロール
https://w.atwiki.jp/eamat/pages/30.html
#right(){&color(#cccccc){&counter()}}
*ホイールリダイレクト スクロール制御 (WheelScroll.ahk)
単体/組込み両対応 (常駐専用)
マウス下のウインドウをホイールでスクロール可能にするスクリプト
秀丸(v8未満※)やVBEの分割ウィンドウでいちいちアクティブを切替えせずにスクロールしたくて作りました。
win10の場合はOS標準の機能でリダイレクトホイールできます。
PC設定 → デバイス → マウス → ホバーしたときに非アクティブウィンドウをスクロールする
本スクリプトとも併用は可能ですが大抵のアプリはOS標準機能のみでも快適に動作するようですので
ほとんどの方にとってはもう本スクリプトを入れる必要はなく、むしろトラブルの元にになるかもしれません。
※秀丸はv8以降で分割形式が変わり現在はOS標準の機能でスクロールが可能です。
(VBEでの分割はoffice2016でも進歩なし…しかし今どきマクロ編集する人どれくらいいるのかしら)
***ダウンロード
-[[WheelScroll_20180516.zip>https://img.atwikiimg.com/www6.atwiki.jp/eamat/attach/30/7/WheelScroll_20180516.zip]]
//-旧バージョンは[[このへん>>http://www6.atwiki.jp/_pub/eamat/MyScript/Lib/]]
***内容
-説明書 [[WheelScroll.txt]]
-ソース [[WheelScroll.ahk]]
***GitHub
- [[https://github.com/eamatt/WheelScroll.ahk]]
***使用方法
・スクリプトをそのまま実行(単体起動)
・#Includeで組込み使用
ホットキーの部分をコメントアウトすると[[MouseGestureL.ahk>>http://www.vector.co.jp/soft/winnt/util/se498500.html?ds]]にも組込みで使えるっぽいです
(参考:[[Examples>>http://code.google.com/p/mousegesturel/downloads/detail?name=Examples52.zip]]WheelAccel.ahkの説明のところ)
***更新履歴
>:2008.05.20
>|[[AutoHotkeyを流行らせるアップローダ>>http://lukewarm.s101.xrea.com/up/]]にて公開
>:2008.05.25
>|コントロールクラスが取れない時はウィンドウクラスを指定するようにした。
>:2009.06.12
>|マルチディスプレイ対策
>:2009.07.22
>|・秀丸v8対応
>・IKKI氏によるホイール加速部改造派生版 [[WheelAccel.ahk>>http://mobitan.org/ahk/WheelAccel.ahk]]の加速を逆輸入、オプションで選択できるようにした。
>・Excelスクロール時の処理をSendからControlSendに変更
>:2012.11.08
>| U64対応 Uint → Ptrに置換、エンコードをUTF-8に変更
> ※高解像度ディスプレイのdpi拡大表示には対応してません
>:2014.03.18
>|コメント修正
>:2014.12.05
>|VISTA以降のチルトホイール(従来の互換横スクロールではなく)に対応
>チルトホットキー:WheelLeft/Ritht
>チルトホイールコマンド : WM_MOUSEHWHEEL
>:2015.07.11
>|コメント修正
>:2017.10.23
>|プチフリ対策のための調査 WM_NCHITTESTを捨てていいかどうか
>チルトホイールのないマウスで疑似チルトに失敗していた問題を修正
>横スクロールの基本動作を互換SCROLL固定にするのをやめてみるテスト
>:2017.11.16
>|win10 モダンUI対策(暫定) モダンUIはリダイレクト方法不明
>窓をアクティブにしてから Send,ホイールでOSにお任せすることにした
>:2017.12.19
>|モダンUI対策 OS標準の「ホバーしたときに非アクティブウィンドウスクロールする」の状態を確認するようにした
>ホバー…スクロールする ON → OSにおまかせ
>ホバー…スクロールする OFF → アクティブ化してからOSにおまかせ
>|Shift+ホイール での横スクロールホットキーを無効化
>(チルトマウスの普及率的に不要だろうとコメントアウトしてしまいましたすみません)
>:2018.05.16
>|Shift+ホイール での横スクロールホットキーの復帰
>|Excelで分割/固定ウィンドウでスクロールできなくなっていたのを修正
>分割時 : 縦横共に互換モードに戻した(操作するスクロールバーを指定する必要があるため)
>固定時 : 非表示のスクロールバーは見ないようにした
>|モダンUI対策 起動時に1回だけレジストリを確認するように変更
>(今まではホイール回すたびに毎回見に行ってた)
2018-05-16T15:37:12+09:00
1526452632
-
WheelScroll.ahk
https://w.atwiki.jp/eamat/pages/32.html
<div style="font-family:'MS Gothic', monospace;margin-left:1em;line-height:130%;">
<table style="border-collapse:collapse;border-width:0;"><tbody><tr><td style="border-style:solid;border-width:0px 1px 0px 0px;padding:3pt;text-align:right;color:#5A4F25;background-color:#FFFCF2;">
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
20<br />
21<br />
22<br />
23<br />
24<br />
25<br />
26<br />
27<br />
28<br />
29<br />
30<br />
31<br />
32<br />
33<br />
34<br />
35<br />
36<br />
37<br />
38<br />
39<br />
40<br />
41<br />
42<br />
43<br />
44<br />
45<br />
46<br />
47<br />
48<br />
49<br />
50<br />
51<br />
52<br />
53<br />
54<br />
55<br />
56<br />
57<br />
58<br />
59<br />
60<br />
61<br />
62<br />
63<br />
64<br />
65<br />
66<br />
67<br />
68<br />
69<br />
70<br />
71<br />
72<br />
73<br />
74<br />
75<br />
76<br />
77<br />
78<br />
79<br />
80<br />
81<br />
82<br />
83<br />
84<br />
85<br />
86<br />
87<br />
88<br />
89<br />
90<br />
91<br />
92<br />
93<br />
94<br />
95<br />
96<br />
97<br />
98<br />
99<br />
100<br />
101<br />
102<br />
103<br />
104<br />
105<br />
106<br />
107<br />
108<br />
109<br />
110<br />
111<br />
112<br />
113<br />
114<br />
115<br />
116<br />
117<br />
118<br />
119<br />
120<br />
121<br />
122<br />
123<br />
124<br />
125<br />
126<br />
127<br />
128<br />
129<br />
130<br />
131<br />
132<br />
133<br />
134<br />
135<br />
136<br />
137<br />
138<br />
139<br />
140<br />
141<br />
142<br />
143<br />
144<br />
145<br />
146<br />
147<br />
148<br />
149<br />
150<br />
151<br />
152<br />
153<br />
154<br />
155<br />
156<br />
157<br />
158<br />
159<br />
160<br />
161<br />
162<br />
163<br />
164<br />
165<br />
166<br />
167<br />
168<br />
169<br />
170<br />
171<br />
172<br />
173<br />
174<br />
175<br />
176<br />
177<br />
178<br />
179<br />
180<br />
181<br />
182<br />
183<br />
184<br />
185<br />
186<br />
187<br />
188<br />
189<br />
190<br />
191<br />
192<br />
193<br />
194<br />
195<br />
196<br />
197<br />
198<br />
199<br />
200<br />
201<br />
202<br />
203<br />
204<br />
205<br />
206<br />
207<br />
208<br />
209<br />
210<br />
211<br />
212<br />
213<br />
214<br />
215<br />
216<br />
217<br />
218<br />
219<br />
220<br />
221<br />
222<br />
223<br />
224<br />
225<br />
226<br />
227<br />
228<br />
229<br />
230<br />
231<br />
232<br />
233<br />
234<br />
235<br />
236<br />
237<br />
238<br />
239<br />
240<br />
241<br />
242<br />
243<br />
244<br />
245<br />
246<br />
247<br />
248<br />
249<br />
250<br />
251<br />
252<br />
253<br />
254<br />
255<br />
256<br />
257<br />
258<br />
259<br />
260<br />
261<br />
262<br />
263<br />
264<br />
265<br />
266<br />
267<br />
268<br />
269<br />
270<br />
271<br />
272<br />
273<br />
274<br />
275<br />
276<br />
277<br />
278<br />
279<br />
280<br />
281<br />
282<br />
283<br />
284<br />
285<br />
286<br />
287<br />
288<br />
289<br />
290<br />
291<br />
292<br />
293<br />
294<br />
295<br />
296<br />
297<br />
298<br />
299<br />
300<br />
301<br />
302<br />
303<br />
304<br />
305<br />
306<br />
307<br />
308<br />
309<br />
310<br />
311<br />
312<br />
313<br />
314<br />
315<br />
316<br />
317<br />
318<br />
319<br />
320<br />
321<br />
322<br />
323<br />
324<br />
325<br />
326<br />
327<br />
328<br />
329<br />
330<br />
331<br />
332<br />
333<br />
334<br />
335<br />
336<br />
337<br />
338<br />
339<br />
340<br />
341<br />
342<br />
343<br />
344<br />
345<br />
346<br />
347<br />
348<br />
349<br />
350<br />
351<br />
352<br />
353<br />
354<br />
355<br />
356<br />
357<br />
358<br />
359<br />
360<br />
361<br />
362<br />
363<br />
364<br />
365<br />
366<br />
367<br />
368<br />
369<br />
370<br />
371<br />
372<br />
373<br />
374<br />
375<br />
376<br />
377<br />
378<br />
379<br />
380<br />
381<br />
382<br />
383<br />
384<br />
385<br />
386<br />
387<br />
388<br />
389<br />
390<br />
391<br />
392<br />
393<br />
394<br />
395<br />
396<br />
397<br />
398<br />
399<br />
400<br />
401<br />
402<br />
403<br />
404<br />
405<br />
406<br />
407<br />
408<br />
409<br />
410<br />
411<br />
412<br />
413<br />
414<br />
415<br />
416<br />
417<br />
418<br />
419<br />
420<br />
421<br />
422<br />
423<br />
424<br />
425<br />
426<br />
427<br />
428<br />
429<br />
430<br />
431<br />
432<br />
433<br />
434<br />
435<br />
436<br />
437<br />
438<br />
439<br />
440<br />
441<br />
442<br />
443<br />
444<br />
445<br />
446<br />
447<br />
448<br />
449<br />
450<br />
451<br />
452<br />
453<br />
454<br />
455<br />
456<br />
457<br />
458<br />
459<br />
460<br />
461<br />
462<br />
463<br />
464<br />
465<br />
466<br />
467<br />
468<br />
469<br />
470<br />
471<br />
472<br />
473<br />
474<br />
475<br />
476<br />
477<br />
478<br />
479<br />
480<br />
481<br />
482<br />
483<br />
484<br />
485<br />
486<br />
487<br />
488<br />
489<br />
490<br />
491<br />
492<br />
493<br />
494<br />
495<br />
496<br />
497<br />
498<br />
499<br />
500<br />
501<br />
502<br />
503<br />
504<br />
505<br />
506<br />
507<br />
508<br />
509<br />
510<br />
511<br />
512<br />
513<br />
514<br />
515<br />
516<br />
517<br />
518<br />
519<br />
520<br />
521<br />
522<br />
523<br />
524<br />
525<br />
526<br />
527<br />
528<br />
529<br />
530<br />
531<br />
532<br />
533<br />
534<br />
535<br />
536<br />
537<br />
538<br />
539<br />
540<br />
541<br />
542<br />
543<br />
544<br />
545<br />
546<br />
547<br />
548<br />
549</td>
<td style="white-space:nowrap;padding:5pt;color:#373737;background-color:#FFFCF2;">
<div style="color:#373737;background-color:#FFFCF2;"><span style="color:#008000;background-color:#FFFCF2;">;---------------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ホイールリダイレクト
スクロール制御</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ・加速対応</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ・Word / Excel / VBE /
秀丸等の分割ペインも互換スクロールで操作可能</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 単体 / 組込み両対応
2008/05/25 (AutoHotkey_L 1.1.24.00)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 組込み時</span><br /><span style="color:#008000;background-color:#FFFCF2;">; #Include
WheelScroll.ahk</span><br /><span style="color:#008000;background-color:#FFFCF2;">; Gosub,WheelInit
;初期化 :AutoExecuteセクションに記述</span><br /><span style="color:#008000;background-color:#FFFCF2;">;---------------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2009.06.12
マルチディスプレイ対策 (Thanks IKKIさん)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2009.07.22 秀丸v8
対応</span><br /><span style="color:#008000;background-color:#FFFCF2;">; IKKI氏の
WheelAccel.ahk の加速モードを入れ込み</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
Excelスクロール時の処理をSendからControlSendに変更</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
(TrackWheelの旧バージョンから拝借)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2012.11.08 U64対応
Uint → Ptr、エンコードをUTF-8に変更</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2014.03.18
コメント修正</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2014.12.05
VISTA以降のチルトホイール(従来の互換横スクロールではなく)に対応</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
チルトホットキー:WheelLeft/Ritht</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
チルトホイールコマンド : WM_MOUSEHWHEEL</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2015.07.11
コメント修正</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2017.10.23
プチフリ対策のための調査 WM_NCHITTESTを捨てていいかどうか</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
チルトホイールのないマウスで疑似チルトに失敗していた問題を修正</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
横スクロールの基本動作を互換SCROLL固定にするのをやめてみるテスト</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2017.11.16 win10
モダンUI対策(暫定) モダンUIはリダイレクト方法不明</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
窓をアクティブにしてから Send,ホイールでOSにお任せすることにした</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2017.12.19 モダンUI対策
OS標準の「ホバーしたときに非アクティブウィンドウスクロールする」</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
の状態を確認するようにした</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
ホバー…スクロールする ON → OSにおまかせ</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
ホバー…スクロールする OFF → アクティブ化してからOSにおまかせ</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
Shift+ホイール での横スクロールホットキーを無効化</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
(チルトマウスの普及率的に不要だろうとコメントアウトしてしまいましたすみません)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 2018.05.16
Shift+ホイール での横スクロールホットキーの復帰</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
Excelで分割/固定ウィンドウでスクロールできなくなっていたのを修正</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 分割時 :
縦横共に互換モードに戻した(操作するスクロールバーを指定する必要があるため)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 固定時 :
非表示のスクロールバーは見ないようにした</span><br /><span style="color:#008000;background-color:#FFFCF2;">; モダンUI対策
起動時に1回だけレジストリを確認するように変更</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
(今まではホイール回すたびに毎回見に行ってた)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">;+++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 単体起動用</span><br /><span style="color:#008000;background-color:#FFFCF2;">;+++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#808000;background-color:#FFFCF2;">#NoEnv</span>
<span style="color:#008000;background-color:#FFFCF2;">;
変数名を解釈するとき、環境変数を無視する</span><br /><span style="color:#808000;background-color:#FFFCF2;">#SingleInstance</span>
<span style="color:#9425A7;background-color:#FFFCF2;">FORCE</span>
<span style="color:#008000;background-color:#FFFCF2;">; 複数プロセスで実行の禁止</span><br /><span style="color:#808000;background-color:#FFFCF2;">#WinActivateForce</span>
<span style="color:#008000;background-color:#FFFCF2;">;
タスクバーアイコン点滅防止</span><br /><span style="color:#808000;background-color:#FFFCF2;">#HotkeyInterval</span>
<span style="color:#0000FF;background-color:#FFFCF2;">10000</span>
<span style="color:#008000;background-color:#FFFCF2;">;高速スクロール対策</span><br /><span style="color:#808000;background-color:#FFFCF2;">#MaxHotkeysPerInterval</span>
<span style="color:#0000FF;background-color:#FFFCF2;">700</span><br /><br />
<div style="color:#000080;background-color:#EEEEEE;">WheelAutoExecute:</div>
<span style="color:#5353FF;background-color:#FFFCF2;">SendMode</span>
<span style="color:#5353FF;background-color:#FFFCF2;">Input</span>
<span style="color:#008000;background-color:#FFFCF2;">;
送信中にユーザー操作を後回しにする。</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Gosub</span>,WheelInit<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Hotkey</span>,^<span style="color:#EE7264;background-color:#FFFCF2;">ESC</span>, WheelExit <span style="color:#008000;background-color:#FFFCF2;">;終了: [Ctrl]+[ESC]</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SetTitleMatchMode</span> ,RegEx
<span style="color:#008000;background-color:#FFFCF2;">;1:前方 2:中間 3:完全
RegEx:正規表現</span><br /><span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<div style="color:#000080;background-color:#EEEEEE;">WheelExit:</div>
<span style="color:#5353FF;background-color:#FFFCF2;">exitapp</span><br /><span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;+++++++++++++++++++++++++++++++++++++++++++++++++++++++</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 単体/組込み両用</span><br /><span style="color:#008000;background-color:#FFFCF2;">;+++++++++++++++++++++++++++++++++++++++++++++++++++++++</span>
<div style="color:#000080;background-color:#EEEEEE;">WheelInit:</div>
<span style="color:#008000;background-color:#FFFCF2;">;-------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 初期化</span><br /><span style="color:#008000;background-color:#FFFCF2;">;-------------------------------------------------------</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;--- オプション
---</span><br />
DefaultScrollMode = <span style="color:#0000FF;background-color:#FFFCF2;">0</span> <span style="color:#008000;background-color:#FFFCF2;">;基本動作モード 0:WHELL
1:互換SCROLL</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; IKKI氏の
WheelAccel.ahk入れ込み 超暫定対応 2009.07.22</span><br />
AcclMode = <span style="color:#0000FF;background-color:#FFFCF2;">0</span> <span style="color:#008000;background-color:#FFFCF2;">; 0:従来の加速モード 1:WheelAccel.ahk
の加速モード</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; AcclMode = 0
オプション</span><br />
AcclSpeed = <span style="color:#0000FF;background-color:#FFFCF2;">1</span> <span style="color:#008000;background-color:#FFFCF2;">;加速時の倍率(0で加速OFF)</span><br />
AcclTOut = <span style="color:#0000FF;background-color:#FFFCF2;">300</span> <span style="color:#008000;background-color:#FFFCF2;">;加速タイムアウト値(ms)</span><br />
ScrlCount = <span style="color:#0000FF;background-color:#FFFCF2;">1</span> <span style="color:#008000;background-color:#FFFCF2;">;互換スクロール行数</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; AcclMode = 1
オプション</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;
ホイール加速◆改造版</span><br />
minThrottle := <span style="color:#0000FF;background-color:#FFFCF2;">2</span> <span style="color:#008000;background-color:#FFFCF2;">; 最小加速率</span><br />
maxThrottle := <span style="color:#0000FF;background-color:#FFFCF2;">7</span> <span style="color:#008000;background-color:#FFFCF2;">; 最大加速率</span><br />
minWheelSpeed := <span style="color:#0000FF;background-color:#FFFCF2;">5</span> <span style="color:#008000;background-color:#FFFCF2;">; 最小加速率になるホイール回転速度 (ノッチ/秒)</span><br />
maxWheelSpeed := <span style="color:#0000FF;background-color:#FFFCF2;">30</span> <span style="color:#008000;background-color:#FFFCF2;">; 最大加速率になるホイール回転速度 (ノッチ/秒)</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">; minThrottle :=
10 ; 最小加速率</span><br /><span style="color:#008000;background-color:#FFFCF2;">; maxThrottle :=
30 ; 最大加速率</span><br /><span style="color:#008000;background-color:#FFFCF2;">; minWheelSpeed :=
20 ; 最小加速率になるホイール回転速度 (ノッチ/秒)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; maxWheelSpeed :=
120 ; 最大加速率になるホイール回転速度 (ノッチ/秒)</span><br />
WA_Debug := <span style="color:#EE7264;background-color:#FFFCF2;">false</span> <span style="color:#008000;background-color:#FFFCF2;">; true
にすると加速率とホイール回転速度が表示される</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;ホイールで動かすコントロールのクラスリスト</span><br />
MouseWhellList =MozillaWindowClass<br />
MouseHWhellList =MozillaWindowClass<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;互換モードで動かすコントロールのクラスリスト</span><br />
VScroolList = MdiClient <span style="color:#008000;background-color:#FFFCF2;">;MDI親 (MS-Accessなど)</span><br />
,VbaWindow <span style="color:#008000;background-color:#FFFCF2;">;VisualBasicEditor</span><br />
,_WwB <span style="color:#008000;background-color:#FFFCF2;">;MS-Word(編集領域全体)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;;;;;
,OModule ;MS-Access97 2008.05.20</span><br />
,Excel7 <span style="color:#008000;background-color:#FFFCF2;">;MS-Excel(2016) ウィンドウ分割時用</span><br /><br />
HScroolList = <span style="color:#008000;background-color:#FFFCF2;">;
HM32CLIENT ;秀丸</span><br />
,Excel7 <span style="color:#008000;background-color:#FFFCF2;">;MS-Excel(2016)</span><br />
,TLimitedScrollBox <span style="color:#008000;background-color:#FFFCF2;">;Leeyesのビューア部</span><br />
,SysTreeView32 <span style="color:#008000;background-color:#FFFCF2;">;hh.exe(chm版ヘルプビューア)</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;事前アクティブ化リスト
2012.08.13</span><br />
ActivateList = TscShellContainerClass <span style="color:#008000;background-color:#FFFCF2;">;リモートデスクトップ WinClass</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;MDI事前アクティブ化リスト
(アクティブ子ウィンドウのみバーがあるアプリなど)</span><br />
MdiActivateList = Excel7 <span style="color:#008000;background-color:#FFFCF2;">;MS-Excel</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;--- 互換モード カスタム動作
---</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;無視リスト(バイパスして親コントロールを制御する)</span><br />
BypassCtlList = ScrollBar <span style="color:#008000;background-color:#FFFCF2;">;スクロールバー本体</span><br />
, _WwG <span style="color:#008000;background-color:#FFFCF2;">;MS-Word分割ペイン(一つ上の_WwBで制御)</span><br />
, <span style="color:#9425A7;background-color:#FFFCF2;">Static</span> <span style="color:#008000;background-color:#FFFCF2;">;秀丸v8β 暫定 2009.07.22</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;兄弟スクロールバー :
スクロールバーが配下ではなく同列にあるアプリ</span><br />
BrotherScroolBarList = TkfInnerView.UnicodeClass <span style="color:#008000;background-color:#FFFCF2;">;萌ディタ</span><br /><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;禁止リスト:スクロールハンドルが取れない時は、互換モードを使用しない</span><br />
NullShwndTabooList = Excel7 <span style="color:#008000;background-color:#FFFCF2;">;MS-Excel(クラッシュ対策)</span><br /><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;---- 横スクロール カスタム動作
---</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;横スクロール除外リスト</span><br />
HDisavledList = TLimitedScrollBox <span style="color:#008000;background-color:#FFFCF2;">; Leeyesのビューア部</span><br />
, TVTest Video Container <span style="color:#008000;background-color:#FFFCF2;">; 動画画面 (TVTest) 2014.05.01</span><br /><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;****** win10
OS標準のリダイレクト設定の確認 2018.05.16 ****</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;「ホバーしたときに非アクティブウィンドウスクロールする」</span><br />
<span style="color:#9425A7;background-color:#FFFCF2;">global</span>
WS_MouseWheelRouting<br />
<span style="color:#5353FF;background-color:#FFFCF2;">RegRead</span>,mwr,<span style="color:#9425A7;background-color:#FFFCF2;">HKCU</span>,<span style="color:#EE7264;background-color:#FFFCF2;">Control</span> Panel<span style="color:#800080;background-color:#FFF4FF;">\D</span>esktop,MouseWheelRouting<br />
WS_MouseWheelRouting := <span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span>|mwr<<span style="color:#0000FF;background-color:#FFFCF2;">2</span> ? <span style="color:#EE7264;background-color:#FFFCF2;">False</span> : <span style="color:#EE7264;background-color:#FFFCF2;">True</span><br /><br /><span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;==============================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">; Hotkeys</span><br /><span style="color:#008000;background-color:#FFFCF2;">;==============================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">; *****
win10モダンUI用</span><br /><span style="color:#808000;background-color:#FFFCF2;">#</span><span style="color:#5353FF;background-color:#FFFCF2;">If</span>
MouseIsOverAndWheelRouting("<span style="color:#9425A7;background-color:#FFFCF2;">ahk_class</span>
ApplicationFrameWindow|HH Parent")
<div style="color:#008080;background-color:#E3FFC6;">WheelUp::
Send,{WheelUp}</div>
<div style="color:#008080;background-color:#E3FFC6;">WheelDown::
Send,{WheelDown}</div>
<div style="color:#008080;background-color:#E3FFC6;">WheelLeft::
Send,{WheelLeft}</div>
<div style="color:#008080;background-color:#E3FFC6;">WheelRight::
Send,{WheelRight}</div>
<div style="color:#FF0000;background-color:#FFE6EE;">
MouseIsOverAndWheelRouting(WinTitle) {</div>
<span style="color:#9425A7;background-color:#FFFCF2;">global</span>
WS_MouseWheelRouting<br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,,,
Win<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
WS_MouseWheelRouting ? <span style="color:#4A0095;background-color:#FFFCF2;">WinExist</span>(WinTitle . "
<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> " . Win) :
<span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
}<br /><br /><br /><span style="color:#808000;background-color:#FFFCF2;">#</span><span style="color:#5353FF;background-color:#FFFCF2;">IfWinActive</span>
<div style="color:#008080;background-color:#E3FFC6;">*WheelDown::
WheelRedirect()</div>
<div style="color:#008080;background-color:#E3FFC6;">*WheelUp::
WheelRedirect()</div>
<div style="color:#008080;background-color:#E3FFC6;">*WheelLeft::
WheelRedirect(1) <span style="color:#008000;background-color:#E3FFC6;">;
2014.12.05追加</span></div>
<div style="color:#008080;background-color:#E3FFC6;">*WheelRight::
WheelRedirect(1) <span style="color:#008000;background-color:#E3FFC6;">;
2014.12.05追加</span></div>
<br /><span style="color:#008000;background-color:#FFFCF2;">; *****
チルトが無いマウス用</span><br /><span style="color:#008000;background-color:#FFFCF2;">;Shiftホイールで横スクロール</span>
<div style="color:#008080;background-color:#E3FFC6;">+WheelDown::
WheelRedirect(1)</div>
<div style="color:#008080;background-color:#E3FFC6;">+WheelUp::
WheelRedirect(1)</div>
<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">;X1+ホイールで横スクロール
2017.10.20</span>
<div style="color:#008080;background-color:#E3FFC6;">XButton1 & WheelUp::
WheelRedirect(1,0)</div>
<div style="color:#008080;background-color:#E3FFC6;">XButton1 & WheelDown::
WheelRedirect(1,1)</div>
<div style="color:#008080;background-color:#E3FFC6;">XButton1:: XButton1</div>
<br /><span style="color:#008000;background-color:#FFFCF2;">;==============================================</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
Functions</span><br /><span style="color:#008000;background-color:#FFFCF2;">;==============================================</span>
<div style="color:#FF0000;background-color:#FFE6EE;">
WheelRedirect(mode=0,dir="")</div>
<span style="color:#008000;background-color:#FFFCF2;">;-------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ホイールリダイレクト</span><br /><span style="color:#008000;background-color:#FFFCF2;">; mode 0:縦スクロール
1:横スクロール (省略時:縦)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; dir 0:UP(LEFT)
1:DOWN(RIGHT) (省略時:ホイール準拠)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;-------------------------------------------------------------</span><br />
{<br />
<span style="color:#9425A7;background-color:#FFFCF2;">global</span>
DefaultScrollMode, AcclSpeed, AcclTOut, ScrlCount<br />
,MouseWhellList, VScroolList, MdiActivateList<br />
,BypassCtlList, NullShwndTabooList, HDisavledList<br />
,ActivateList, MouseHWhellList, HScroolList<br />
,WS_MouseWheelRouting<br /><br />
<span style="color:#5353FF;background-color:#FFFCF2;">CoordMode</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Mouse</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Screen</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,mx,my,<span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span>,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,<span style="color:#0000FF;background-color:#FFFCF2;">3</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetClass</span>,wcls, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">/*</span><br /><span style="color:#008000;background-color:#FFFCF2;"> SendMessage,0x84,0,%
(my<<16)|mx,,ahk_id %ctrl% ;WM_NCHITTEST</span><br /><span style="color:#008000;background-color:#FFFCF2;">; If (ErrorLevel =
0xFFFFFFFF)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
MouseGetPos,,,,ctrl,2</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;"> ;※※※ WM_NCHITTEST
テスト ※※※</span><br /><span style="color:#008000;background-color:#FFFCF2;"> If (ErrorLevel =
0xFFFFFFFF)</span><br /><span style="color:#008000;background-color:#FFFCF2;"> {</span><br /><span style="color:#008000;background-color:#FFFCF2;">
MouseGetPos,,,,ctrl,2</span><br /><span style="color:#008000;background-color:#FFFCF2;"> tooltip,ctrlhwd
error</span><br /><span style="color:#008000;background-color:#FFFCF2;"> settimer
WA_EraseToolTip, 10000</span><br /><span style="color:#008000;background-color:#FFFCF2;"> </span><br /><span style="color:#008000;background-color:#FFFCF2;"> }</span><br /><span style="color:#008000;background-color:#FFFCF2;"> ;※※※ WM_NCHITTEST
テスト ※※※</span><br /><span style="color:#008000;background-color:#FFFCF2;">*/</span><br /><br />
<span style="color:#5353FF;background-color:#FFFCF2;">ifEqual</span>,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,, <span style="color:#5353FF;background-color:#FFFCF2;">SetEnv</span>,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,<span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;2008.05.25</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetClass</span>,ccls,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%ctrl%</span><br />
mccls := ccls <span style="color:#008000;background-color:#FFFCF2;">;2009.07.22 秀丸v8β 対応</span><br /><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;---- アプリ個別処理
----</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;※仮想PC、他PCリモート制御に関しては通常のウィンドウと扱いが違うため</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;
個別対処が必要かも</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
CoordMode,ToolTip,Screen</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
tooltip,%wcls%,50,50</span><br /><br />
key := <span style="color:#4A0095;background-color:#FFFCF2;">RegExReplace</span>(<span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>, "<span style="color:#800080;background-color:#FFF4FF;">\*</span>" ,<span style="color:#EE7264;background-color:#FFFCF2;">""</span>)<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;Mouse without Borders
2012.08.13</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;スクロール制御はクライアントに任せる
(Class名は環境で変動するかも)</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(<span style="color:#4A0095;background-color:#FFFCF2;">Instr</span>(wcls,"WindowsForms10.Window.8.app<span style="color:#0000FF;background-color:#FFFCF2;">.0.33c0d9d</span>")
&& mx==<span style="color:#0000FF;background-color:#FFFCF2;">0</span>
&& my==<span style="color:#0000FF;background-color:#FFFCF2;">0</span>)
{<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Send</span>,{<span style="color:#EE7264;background-color:#FFFCF2;">%</span>key<span style="color:#EE7264;background-color:#FFFCF2;">%</span>}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span><br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;docuworksズーム
2011.20.34 (暫定)</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
<span style="color:#4A0095;background-color:#FFFCF2;">Instr</span>(wcls,"Afx:<span style="color:#0000FF;background-color:#FFFCF2;">400000</span>:b:<span style="color:#0000FF;background-color:#FFFCF2;">10013</span>:"){<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(<span style="color:#4A0095;background-color:#FFFCF2;">Instr</span>(<span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>,"<span style="color:#EE7264;background-color:#FFFCF2;">Up</span>"))<br />
<span style="color:#5353FF;background-color:#FFFCF2;">ControlSend</span>,AfxFrameOrView422,{<span style="color:#EE7264;background-color:#FFFCF2;">NumpadAdd</span>},DocuWorks<br />
<span style="color:#5353FF;background-color:#FFFCF2;">else</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">ControlSend</span>,AfxFrameOrView422,{<span style="color:#EE7264;background-color:#FFFCF2;">NumpadSub</span>},DocuWorks<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span><br />
}<br />
<br />
<span style="color:#008000;background-color:#FFFCF2;">;Microsoft Edge
(とwin10 OS の「アプリ」) 2017.11.15</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (wcls ==
"ApplicationFrameWindow") {<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(!WS_MouseWheelRouting && !<span style="color:#4A0095;background-color:#FFFCF2;">WinActive</span>("<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> " <span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span>)) <span style="color:#008000;background-color:#FFFCF2;">; 2018.05.16</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinActivate</span> ,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Send</span>,{<span style="color:#EE7264;background-color:#FFFCF2;">%</span>key<span style="color:#EE7264;background-color:#FFFCF2;">%</span>}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span><br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;---- カスタマイズ適用
-----</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;事前アクティブ化リストチェック :
非アクティブウィンドウをアクティブ化 2012.08.13</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> wcls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>ActivateList<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
{<br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinActivate</span> ,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_class</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>wcls<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;無視リストチェック:1階層上のコントロールを制御対象とする</span><br />
Ptr := !<span style="color:#EE7264;background-color:#FFFCF2;">A_PtrSize</span> ? "UInt" : "Ptr"<br />
<span style="color:#5353FF;background-color:#FFFCF2;">ifInString</span>,
BypassCtlList, <span style="color:#EE7264;background-color:#FFFCF2;">%</span>ccls<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
{<br />
<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span> :=
<span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("GetParent",Ptr,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,
Ptr) <span style="color:#008000;background-color:#FFFCF2;">;U64
2012.11.09</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetClass</span>,ccls,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%ctrl%</span><br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;MDI事前アクティブ化リストチェック :
非アクティブ子ウィンドウをアクティブ化</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ccls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>MdiActivateList<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
{<br />
MdiClient := <span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("GetParent",Ptr,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,
Ptr) <span style="color:#008000;background-color:#FFFCF2;">;U64
2012.11.09</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">SendMessage</span>, <span style="color:#0000FF;background-color:#FFFCF2;">0x229</span>, <span style="color:#0000FF;background-color:#FFFCF2;">0</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>MdiClient<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;WM_MDIGETACTIVE</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span> !=
<span style="color:#EE7264;background-color:#FFFCF2;">ErrorLevel</span>) {<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>(ccls = "Excel7")
<span style="color:#008000;background-color:#FFFCF2;">;Excelカスタム</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">ControlClick</span>,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%ctrl%</span> <span style="color:#008000;background-color:#FFFCF2;">; (改)MID小窓をクリックして前面にならないようにした
2009.07.22</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Else</span>
<span style="color:#5353FF;background-color:#FFFCF2;">PostMessage</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0x222</span>, <span style="color:#EE7264;background-color:#FFFCF2;">%ctrl%</span>,<span style="color:#0000FF;background-color:#FFFCF2;">0</span>,,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>MdiClient<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
}<br />
}<br />
scnt := GetScrollBarHwnd(shwnd,mx,my,<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,mode,mccls) <span style="color:#008000;background-color:#FFFCF2;">;スクロールハンドル取得 2009.07.22</span><br /><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;スクロール動作指定</span><br /><span style="color:#008000;background-color:#FFFCF2;">; scmode :=
DefaultScrollMode<<1 | mode</span><br />
scmode := DefaultScrollMode<<<span style="color:#0000FF;background-color:#FFFCF2;">1</span> <span style="color:#008000;background-color:#FFFCF2;">;横スクロールの基本動作を互換SCROLL固定にするのをやめてみるテスト
2017.10.23</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;(チルト無効ソフトが多いようならDefaultHScrollModeを作るかも?</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ccls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>HDisavledList<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;横スクロール禁止</span><br />
scmode &= <span style="color:#0000FF;background-color:#FFFCF2;">0x10</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ccls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>MouseWhellList<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;ホイールモード</span><br />
scmode &= <span style="color:#0000FF;background-color:#FFFCF2;">0x01</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ccls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>VScroolList<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;互換モード</span><br />
scmode |= <span style="color:#0000FF;background-color:#FFFCF2;">0x10</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;チルト動作指定
2014.12.05</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(mode=<span style="color:#0000FF;background-color:#FFFCF2;">1</span> ||
<span style="color:#4A0095;background-color:#FFFCF2;">RegExMatch</span>(<span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>,
"Wheel(<span style="color:#EE7264;background-color:#FFFCF2;">Left</span>|<span style="color:#EE7264;background-color:#FFFCF2;">Right</span>)")) {<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ccls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>MouseHWhellList<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;ホイールモード(チルト)</span><br />
scmode &= <span style="color:#0000FF;background-color:#FFFCF2;">0x10</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ccls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>HScroolList<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;互換モード(横スクロール)</span><br />
scmode |= <span style="color:#0000FF;background-color:#FFFCF2;">0x10</span><br />
}<br /><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (!shwnd) {
<span style="color:#008000;background-color:#FFFCF2;">;互換モード禁止リスト</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> ccls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>NullShwndTabooList<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
scmode = <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
}<br /><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(!scmode)<br />
MOUSEWHELL(<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,mx,my,mode,dir,AcclSpeed,AcclTOut)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Else</span>
SCROLL(<span style="color:#EE7264;background-color:#FFFCF2;">ctrl</span>,mode,shwnd,dir,ScrlCount,AcclSpeed,AcclTOut)<br />
}<br />
<div style="color:#FF0000;background-color:#FFE6EE;">GetScrollBarHwnd(byref
shwnd, mx,my,Cntlhwnd,mode=0,mccls="")</div>
<span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
該当コントロールのスクロールハンドルを返す</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 戻り値
指定方向のスクロールオブジェクト数</span><br /><span style="color:#008000;background-color:#FFFCF2;">; out shwnd
スクロールハンドル格納先</span><br /><span style="color:#008000;background-color:#FFFCF2;">; in mx,my
マウス位置</span><br /><span style="color:#008000;background-color:#FFFCF2;">; Cntlhwnd
対象コントロールのハンドル</span><br /><span style="color:#008000;background-color:#FFFCF2;">; mode
0:VSCROLL(縦) 1:HSCROLL(横)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; mccls
マウス直下のコントロール名称</span><br /><span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------------------------</span><br />
{<br />
<span style="color:#9425A7;background-color:#FFFCF2;">global</span>
BrotherScroolBarList<br /><br />
shwnd = <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGet</span>,lst,<span style="color:#9425A7;background-color:#FFFCF2;">ControlList</span>,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>Cntlhwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetClass</span>,pcls, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>Cntlhwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;配下にスクロールバーなし</span><br />
Ptr := !<span style="color:#EE7264;background-color:#FFFCF2;">A_PtrSize</span> ? "UInt" : "Ptr"<br />
<span style="color:#5353FF;background-color:#FFFCF2;">ifNotInString</span>,
lst, ScrollBar<br />
{ <span style="color:#008000;background-color:#FFFCF2;">;兄弟指定がある場合は、自分と同列のスクロールバーを探す</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> pcls
<span style="color:#9425A7;background-color:#FFFCF2;">in</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>BrotherScroolBarList<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
{<br />
Cntlhwnd := <span style="color:#4A0095;background-color:#FFFCF2;">DllCall</span>("GetParent",Ptr,Cntlhwnd,
Ptr)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGet</span>,lst,<span style="color:#9425A7;background-color:#FFFCF2;">ControlList</span>,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>Cntlhwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetClass</span>,pcls, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>Cntlhwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">else</span>
<span style="color:#5353FF;background-color:#FFFCF2;">return</span>
<span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;スクロールバーコントロールの抽出</span><br />
vcnt = <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
hcnt = <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Loop</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Parse</span>,lst,<span style="color:#EE7264;background-color:#FFFCF2;">`n</span><br />
{<br />
<span style="color:#5353FF;background-color:#FFFCF2;">ifNotInstring</span> <span style="color:#EE7264;background-color:#FFFCF2;">A_LoopField</span> , ScrollBar<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Continue</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">ControlGet</span>,<span style="color:#9425A7;background-color:#FFFCF2;">vis</span>,<span style="color:#9425A7;background-color:#FFFCF2;">Visible</span>,,<span style="color:#EE7264;background-color:#FFFCF2;">%A_LoopField%</span>,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>Cntlhwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">; 2018.05.16</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(!<span style="color:#9425A7;background-color:#FFFCF2;">vis</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Continue</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">ControlGet</span>,<span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span>, <span style="color:#9425A7;background-color:#FFFCF2;">Hwnd</span>,,<span style="color:#EE7264;background-color:#FFFCF2;">%A_LoopField%</span>,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>Cntlhwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetpos</span>,
sx,sy,sw,sh, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br /><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (sw
< sh) { <span style="color:#008000;background-color:#FFFCF2;">;縦スクロール</span><br />
vcnt++<br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetpos</span>, vx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>,vy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>,vw<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>,vh<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (vi
= <span style="color:#EE7264;background-color:#FFFCF2;">""</span>)<br />
|| ((vy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>!=sy)&&((sy<my)&&(vy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span><sy))||((vy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>>my)&&(vy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>>sy)))
<span style="color:#008000;background-color:#FFFCF2;">;上下分割</span><br />
|| ((vx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>!=sx)&&((sx>mx)&&(vx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>>sx))||((vx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span><mx)&&(vx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>vi<span style="color:#EE7264;background-color:#FFFCF2;">%</span><sx)))
<span style="color:#008000;background-color:#FFFCF2;">;左右分割</span><br />
{<br />
vi := vcnt<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(mode = <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) {<br />
ret := vcnt<br />
shwnd := <span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><br />
}<br />
}<br />
}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (sw
> sh) { <span style="color:#008000;background-color:#FFFCF2;">;横スクロール</span><br />
hcnt++<br />
<span style="color:#5353FF;background-color:#FFFCF2;">WinGetpos</span>, hx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>,hy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>,hw<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>,hh<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hcnt<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (hi
= <span style="color:#EE7264;background-color:#FFFCF2;">""</span>)<br />
|| ((hx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>!=sx)&&((sx<mx)&&(hx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span><sx))||((hx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>>mx)&&(hx<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>>sx)))
<span style="color:#008000;background-color:#FFFCF2;">;左右(Excel型)</span><br />
|| ((hy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>!=sy)&&((sy+sh>my)&&(hy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>>sy))||((hy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span>+hh<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span><my)&&(hy<span style="color:#EE7264;background-color:#FFFCF2;">%</span>hi<span style="color:#EE7264;background-color:#FFFCF2;">%</span><sy)))
<span style="color:#008000;background-color:#FFFCF2;">;上下(Word型)</span><br />
{<br />
hi := hcnt<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(mode = <span style="color:#0000FF;background-color:#FFFCF2;">1</span>) {<br />
ret := hcnt<br />
shwnd := <span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><br />
}<br />
}<br />
}<br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; 2009.07.22 秀丸8β1
超暫定対応</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;---アクティブペインにしかバーがないアプリ、可能ならペインを切り替える---</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;[秀丸]用
カスタム:分割ウィンドウ切り替え</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(pcls="HM32CLIENT" && !(vy1<=my && vy1+vh1 >= my))
<span style="color:#008000;background-color:#FFFCF2;">;秀丸 v7未満</span><br />
|| (pcls="Hidemaru32Class" && mccls = "<span style="color:#9425A7;background-color:#FFFCF2;">Static</span>") <span style="color:#008000;background-color:#FFFCF2;">; v8β1</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">PostMessage</span>, <span style="color:#0000FF;background-color:#FFFCF2;">0x111</span>, <span style="color:#0000FF;background-color:#FFFCF2;">142</span>, <span style="color:#0000FF;background-color:#FFFCF2;">0</span>, ,<span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span>Cntlhwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span> <span style="color:#008000;background-color:#FFFCF2;">;WM_COMMAND</span><br />
<span style="color:#008000;background-color:#FFFCF2;">;------------------------------------------------------------------------</span><br /><br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span> ret<br />
}<br /><br /><span style="color:#008000;background-color:#FFFCF2;">;------ PostMessage
Scrool Control ------------------------------------------</span><br />
<div style="color:#FF0000;background-color:#FFE6EE;">
MOUSEWHELL(hwnd,mx,my,mode="",dir="", ASpeed=1,ATOut=300)</div>
<span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
WM_MOUSEWHELLによる任意コントロールスクロール</span><br /><span style="color:#008000;background-color:#FFFCF2;">; hwnd
該当コントロールのウィンドウハンドル</span><br /><span style="color:#008000;background-color:#FFFCF2;">; mx,my
マウス位置</span><br /><span style="color:#008000;background-color:#FFFCF2;">; mode 0:縦
1:横 (2014.12.05)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; dir 進行方向
0:UP(Left) 1:DOWN(Right)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ASpeed
:加速時の倍率(0で加速OFF)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ATOut
:加速タイムアウト値(ms)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------------------------</span><br />
{<br />
<span style="color:#9425A7;background-color:#FFFCF2;">static</span> delta
<span style="color:#008000;background-color:#FFFCF2;">; 2012.08.12
L向け調整</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; IKKI氏の
WheelAccel.ahk入れ込み 超暫定対応 2009.07.22</span><br />
<span style="color:#9425A7;background-color:#FFFCF2;">global</span>
AcclMode<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (AcclMode)
{<br />
delta := <span style="color:#0000FF;background-color:#FFFCF2;">120</span> * WA_Throttle()<br />
}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">else</span> {<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;ホイール加速</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">A_PriorHotkey</span>
<> <span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>) || (ATOut <
<span style="color:#EE7264;background-color:#FFFCF2;">A_TimeSincePriorHotkey</span>)<br />
|| (<span style="color:#0000FF;background-color:#FFFCF2;">0</span>
>= ASpeed)<br />
delta = <span style="color:#0000FF;background-color:#FFFCF2;">120</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Else</span>
<span style="color:#5353FF;background-color:#FFFCF2;">If</span> (delta <
<span style="color:#0000FF;background-color:#FFFCF2;">1000</span>)<br />
delta += <span style="color:#0000FF;background-color:#FFFCF2;">120</span> * ASpeed<br />
}<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; wParam:
Delta(移動量)</span><br />
wpalam :=<span style="color:#4A0095;background-color:#FFFCF2;">GetKeyState</span>("<span style="color:#EE7264;background-color:#FFFCF2;">LButton</span>") | <span style="color:#4A0095;background-color:#FFFCF2;">GetKeyState</span>("<span style="color:#EE7264;background-color:#FFFCF2;">RButton</span>") <<<span style="color:#0000FF;background-color:#FFFCF2;">1</span><br />
| <span style="color:#4A0095;background-color:#FFFCF2;">GetKeyState</span>("<span style="color:#EE7264;background-color:#FFFCF2;">Shift</span>") <<<span style="color:#0000FF;background-color:#FFFCF2;">2</span> | <span style="color:#4A0095;background-color:#FFFCF2;">GetKeyState</span>("<span style="color:#EE7264;background-color:#FFFCF2;">Ctrl</span>") <<<span style="color:#0000FF;background-color:#FFFCF2;">3</span><br />
| <span style="color:#4A0095;background-color:#FFFCF2;">GetKeyState</span>("<span style="color:#EE7264;background-color:#FFFCF2;">MButton</span>") <<<span style="color:#0000FF;background-color:#FFFCF2;">4</span> | <span style="color:#4A0095;background-color:#FFFCF2;">GetKeyState</span>("<span style="color:#EE7264;background-color:#FFFCF2;">XButton1</span>")<<<span style="color:#0000FF;background-color:#FFFCF2;">5</span><br />
| <span style="color:#4A0095;background-color:#FFFCF2;">GetKeyState</span>("<span style="color:#EE7264;background-color:#FFFCF2;">XButton2</span>")<<<span style="color:#0000FF;background-color:#FFFCF2;">6</span><br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;
縦:WM_MOUSEWHELL(0x20A) 横:WM_MOUSEHWHEEL(0x20E) 2014.12.05
(2017.10.23修正)</span><br />
msg := mode=<span style="color:#0000FF;background-color:#FFFCF2;">0</span>||(!mode&&<span style="color:#4A0095;background-color:#FFFCF2;">RegExMatch</span>(<span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>,
"Wheel(<span style="color:#EE7264;background-color:#FFFCF2;">Up</span>|<span style="color:#EE7264;background-color:#FFFCF2;">Down</span>)")) ? <span style="color:#0000FF;background-color:#FFFCF2;">0x20A</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0x20E</span><br />
wpalam|= (dir=<span style="color:#0000FF;background-color:#FFFCF2;">0</span>||(!dir&&
<span style="color:#4A0095;background-color:#FFFCF2;">RegExMatch</span>(<span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>,
"Wheel(<span style="color:#EE7264;background-color:#FFFCF2;">Up</span>|<span style="color:#EE7264;background-color:#FFFCF2;">Left</span>)")) ? <span style="color:#0000FF;background-color:#FFFCF2;">1</span>:<span style="color:#0000FF;background-color:#FFFCF2;">-1</span>) *
(delta<<<span style="color:#0000FF;background-color:#FFFCF2;">16</span>)<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">; lParam:
XY座標</span><br />
my += (my < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span> <span style="color:#008000;background-color:#FFFCF2;">;マルチディスプレイ対策 2009.06.12</span><br />
mx += (mx < <span style="color:#0000FF;background-color:#FFFCF2;">0</span>) ? <span style="color:#0000FF;background-color:#FFFCF2;">0xFFFF</span> : <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
lpalam := (my << <span style="color:#0000FF;background-color:#FFFCF2;">16</span>) | mx<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;WM_MOUSE(H)WHELL</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">PostMessage</span>,
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>msg<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, <span style="color:#EE7264;background-color:#FFFCF2;">%</span>wpalam<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, <span style="color:#EE7264;background-color:#FFFCF2;">%</span>lpalam<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, , <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
}<br />
<div style="color:#FF0000;background-color:#FFE6EE;">
SCROLL(hwnd,mode=0,shwnd=0,dir="", ScrlCnt=1,ASpeed=1,ATOut=300)</div>
<span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
WM_SCROLLによる任意コントロールスクロール</span><br /><span style="color:#008000;background-color:#FFFCF2;">; hwnd
該当コントロールのウィンドウハンドル</span><br /><span style="color:#008000;background-color:#FFFCF2;">; mode
0:VSCROLL(縦) 1:HSCROLL(横)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; shwnd
スクロールバーのハンドル</span><br /><span style="color:#008000;background-color:#FFFCF2;">; dir 前後方向
0:SB_LINEUP/LEFT 1:SB_LINEDOWN/RIGHT</span><br /><span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ScrlCnt
:スクロール行数</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ASpeed
:加速時の倍率(0で加速OFF)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ATOut
:加速タイムアウト値(ms)</span><br /><span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br />
{<br />
<span style="color:#9425A7;background-color:#FFFCF2;">static</span>
ACount<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;加速</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">A_PriorHotkey</span>
<> <span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>) || (ATOut <
<span style="color:#EE7264;background-color:#FFFCF2;">A_TimeSincePriorHotkey</span>)<br />
|| (<span style="color:#0000FF;background-color:#FFFCF2;">0</span> >=
ASpeed)<br />
ACount := ScrlCnt<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Else</span><br />
ACount += ScrlCnt * ASpeed<br /><br />
<span style="color:#008000;background-color:#FFFCF2;">;wParam: 方向</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (dir =
<span style="color:#EE7264;background-color:#FFFCF2;">""</span>)<br />
{<br />
<span style="color:#5353FF;background-color:#FFFCF2;">If</span>
(<span style="color:#4A0095;background-color:#FFFCF2;">RegExMatch</span>(<span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span>,
"Wheel(<span style="color:#EE7264;background-color:#FFFCF2;">Up</span>|<span style="color:#EE7264;background-color:#FFFCF2;">Left</span>)"))<br />
dir = <span style="color:#0000FF;background-color:#FFFCF2;">0</span>
<span style="color:#008000;background-color:#FFFCF2;">;SB_LINEUP /
SB_LINELEFT</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">Else</span> dir =
<span style="color:#0000FF;background-color:#FFFCF2;">1</span>
<span style="color:#008000;background-color:#FFFCF2;">;SB_LINEDOWN /
SB_LINERIGHT</span><br />
}<br />
<br />
<span style="color:#008000;background-color:#FFFCF2;">;0x114:WM_HSCROLL
0x115:WM_VSCROLL</span><br />
msg := <span style="color:#0000FF;background-color:#FFFCF2;">0x115</span>
- mode<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Loop</span>,
<span style="color:#EE7264;background-color:#FFFCF2;">%</span>ACount<span style="color:#EE7264;background-color:#FFFCF2;">%</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">PostMessage</span>, <span style="color:#EE7264;background-color:#FFFCF2;">%</span>msg<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, <span style="color:#EE7264;background-color:#FFFCF2;">%</span>dir<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, <span style="color:#EE7264;background-color:#FFFCF2;">%</span>shwnd<span style="color:#EE7264;background-color:#FFFCF2;">%</span>, , <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> <span style="color:#EE7264;background-color:#FFFCF2;">%</span><span style="color:#9425A7;background-color:#FFFCF2;">hwnd</span><span style="color:#EE7264;background-color:#FFFCF2;">%</span><br /><br />
}<br />
<div style="color:#FF0000;background-color:#FFE6EE;">WA_Throttle() {</div>
<span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
加速率を線形補間で計算する</span><br /><span style="color:#008000;background-color:#FFFCF2;">; minThrottle =
最小加速率</span><br /><span style="color:#008000;background-color:#FFFCF2;">; maxThrottle =
最大加速率</span><br /><span style="color:#008000;background-color:#FFFCF2;">; minWheelSpeed =
最小加速率になるホイール回転速度 (ノッチ/秒)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; maxWheelSpeed =
最大加速率になるホイール回転速度 (ノッチ/秒)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; WA_Debug =
デバッグモード</span><br /><span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br />
<span style="color:#9425A7;background-color:#FFFCF2;">global</span>
minThrottle, maxThrottle, minWheelSpeed, maxWheelSpeed, WA_Debug,
tooltiptext<br />
<span style="color:#9425A7;background-color:#FFFCF2;">static</span> prevspd
:= <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span>
(<span style="color:#EE7264;background-color:#FFFCF2;">A_PriorHotkey</span>
<> <span style="color:#EE7264;background-color:#FFFCF2;">A_ThisHotkey</span> || <span style="color:#EE7264;background-color:#FFFCF2;">A_TimeSincePriorHotkey</span> <=
<span style="color:#0000FF;background-color:#FFFCF2;">0</span>) {<br />
<span style="color:#5353FF;background-color:#FFFCF2;">gosub</span>
WA_EraseToolTip<br />
prevspd := <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
nextspd := <span style="color:#0000FF;background-color:#FFFCF2;">0</span><br />
} <span style="color:#5353FF;background-color:#FFFCF2;">else</span> {<br />
nextspd := <span style="color:#0000FF;background-color:#FFFCF2;">1000</span> / <span style="color:#EE7264;background-color:#FFFCF2;">A_TimeSincePriorHotkey</span>
<span style="color:#008000;background-color:#FFFCF2;">; 現在のホイール回転速度
(ノッチ/秒)</span><br />
}<br />
spd := (prevspd + nextspd) / <span style="color:#0000FF;background-color:#FFFCF2;">2</span> <span style="color:#008000;background-color:#FFFCF2;">; 直近 2 ノッチの平均回転速度 (ノッチ/秒)</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (spd <
minWheelSpeed) {<br />
thr := <span style="color:#0000FF;background-color:#FFFCF2;">1</span><br />
} <span style="color:#5353FF;background-color:#FFFCF2;">else</span> {<br />
thr := <span style="color:#4A0095;background-color:#FFFCF2;">floor</span>((spd - minWheelSpeed) *
(maxThrottle - minThrottle) / (maxWheelSpeed - minWheelSpeed) +
minThrottle)<br />
}<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (thr >
maxThrottle) {<br />
thr := maxThrottle<br />
}<br />
<br />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (WA_Debug)
{<br />
tooltiptext .= "x" . thr . " (" . <span style="color:#4A0095;background-color:#FFFCF2;">round</span>(spd, <span style="color:#0000FF;background-color:#FFFCF2;">1</span>)<br /><span style="color:#008000;background-color:#FFFCF2;">; tooltiptext .= "
= avg(" . round(nextspd, 1) . " + " . round(prevspd, 1) . ")"</span><br />
tooltiptext .= " notch/s)<span style="color:#EE7264;background-color:#FFFCF2;">`n</span>"<br />
<span style="color:#5353FF;background-color:#FFFCF2;">tooltip</span>
<span style="color:#EE7264;background-color:#FFFCF2;">%</span> tooltiptext<br />
<span style="color:#5353FF;background-color:#FFFCF2;">settimer</span>
WA_EraseToolTip, <span style="color:#0000FF;background-color:#FFFCF2;">10000</span><br />
}<br />
prevspd := nextspd<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span> thr<br />
}<br />
<div style="color:#000080;background-color:#EEEEEE;">WA_EraseToolTip:</div>
<span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; ツールチップを消す</span><br /><span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br />
tooltiptext := <span style="color:#EE7264;background-color:#FFFCF2;">""</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">tooltip</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">settimer</span>
WA_EraseToolTip, <span style="color:#9425A7;background-color:#FFFCF2;">off</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br /><span style="color:#008000;background-color:#FFFCF2;">; <参考>
ホイール加速の別実装</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
http://f57.aaa.livedoor.jp/~atechs/index.php?plugin=attach&pcmd=open&file=AutoHotKey%20Thread.htm&refer=Download</span><br /><span style="color:#008000;background-color:#FFFCF2;">; 538 :233:2005/05/09(月)
01:41:23 ID:zU71pxGA</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
WheelUp::</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
WheelDown::</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
MouseGetPos,x,y,hwnd,cls</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
MouseGetPos,,,,cls2,1</span><br /><span style="color:#008000;background-color:#FFFCF2;">; if(cls !=
cls2)</span><br /><span style="color:#008000;background-color:#FFFCF2;">; cls :=
cls2</span><br /><span style="color:#008000;background-color:#FFFCF2;">; accel :=
(A_PriorHotkey == A_ThisHotkey && A_TimeSincePriorHotkey < 80) +
(A_PriorHotkey == A_ThisHotkey && A_TimeSincePriorHotkey < 250) +
1</span><br /><span style="color:#008000;background-color:#FFFCF2;">; wParam := 0x780000
* accel * (1 - 2 *(A_ThisHotkey = "WheelDown"))</span><br /><span style="color:#008000;background-color:#FFFCF2;">; lParam := x +
y*0x10000</span><br /><span style="color:#008000;background-color:#FFFCF2;">; PostMessage,0x20A,
%wParam%,%lParam%, %cls%, ahk_id %hwnd%</span><br /><span style="color:#008000;background-color:#FFFCF2;">; return</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
ホイールリダイレクト。例によって加速付き。</span><br /><span style="color:#008000;background-color:#FFFCF2;">;
だいぶ短くなった。今のところMDIを含め殆ど動ようになった。</span><br /><span style="color:#008000;background-color:#FFFCF2;">; W2kSP4,
AHK1.0.32.00</span><br /><span style="color:#008000;background-color:#FFFCF2;">;----------------------------------------------------------</span><br />
</div>
</td>
</tr></tbody></table></div>
2018-05-16T14:33:39+09:00
1526448819
-
WheelScroll.txt
https://w.atwiki.jp/eamat/pages/33.html
ホイールリダイレクト スクロール制御 (WheelScroll.ahk)
単体/組込み両対応 (常駐専用)
.■動作環境
AutoHotkey(_L) マウスフックの使用できる環境
動作確認環境: XP、7、8、8.1
※高解像度ディスプレイのdpi拡大表示には対応してません
.■概要
マウス下のウインドウをホイールでスクロール可能にするスクリプト
秀丸やVBEの分割ウィンドウでいちいちアクティブを切替えずにスクロールしたくて作りました。
.■特徴
・スクロール方式をソフト毎に指定可能
・旧型(互換スクロール)、ホイール、チルト(新型横スクロール)に対応
・制御先をスクロールバーハンドルに指定することで分割ウィンドウ領域 (MS-Word Excel)や
ホイールで動かないアプリ VisualBasicEditorなどのでのスクロールが可能に。
・旧秀丸の独自分割形式(v8以前)分割ウィンドウにも対応
.■使用方法
..◆単体起動
スクリプトをそのまま実行
..◆組込み
AutoHotkey.iniなどに組込んで使う場合、AutoExecute セクションに
#Include WheelScroll.ahk
Gosub,WheelInit
を入れる。
.■設定関係
..初期化ルーチン WheelInitを適宜カスタマイズして使用して下さい。
..Hotkey(デフォルト)
ホイールUp/Downで縦スクロール
チルトLeft/Rightで縦スクロール
Shift+ホイールで横スクロール
適宜変更して下さい
.■制限事項等
ホイールスクロールはできるだけアクティブ状態を替えず(非アクティブ時は非アクティブのまま)
行うようにしてます。
※ Excelは互換モードではクラッシュしやすいようです
動作に支障がでるようなら互換モードは避けてホイールモードで動かして下さい。
マウスポインタがスクロールバー上にある時は正しく動作しないかも知れません。
.■改変・再配布
改変・再配布ともにご自由にどうぞ
(スクリプト中のAboutメッセージは適時書き換えて下さい)
.■履歴
2005.02.10 なんか色々やろうとして複雑になりすぎて挫折
2007.10.12 過去に作ったサブルーチン集のFunction化
設定とか凝るのをやめて単純化、Initルーチンで適当に弄れるように。
何かいつのまにかAHKでコントロールのハンドルが取れるようになってたので
スクロールのハンドルとか取得してみる
2008.03.03 ロジクールのチルトマウスでXPで横スクロールさせてみるテスト(F11~F14)
(2015.07.11 正規チルト対応のため削除)
2008.05.20 AutoHotkeyを流行らせるアップローダにて公開
・互換モードリストに Access97追加 (51行目のコメント外して使って下さい)
・基本動作モードのデフォルト値を 1:互換SCROLL → 0:WHELL に。
・コメントとか所々説明の変なとこ修正
2008.05.25 ・コントロールクラスが取れない時はウィンドウクラスを指定するようにした。
(Vieas メインウィンドウ用対策)
2009.06.12 ・マルチディスプレイ対策 (Thanks IKKIさん) (非公開)
2009.07.22 ・ 秀丸v8対応
・IKKI氏によるホイール加速部改造派生版WheelAccel.ahk(http://mobitan.org/ahk/WheelAccel.ahk)の
加速モードを逆輸入、オプションで選択できるようにした。
・Excelスクロール時の処理をSendからControlSendに変更
(TrackWheelの旧バージョンから拝借)
2012.11.08 U64対応 Uint → Ptrに置換、エンコードをUTF-8に変更
※高解像度ディスプレイのdpi拡大表示には対応してません
2014.03.18 コメント修正
2014.12.05 VISTA以降のチルトホイール(従来の互換横スクロールではなく)に対応
チルトホットキー:WheelLeft/Ritht
チルトホイールコマンド : WM_MOUSEHWHEEL
2015.07.11 コメント修正
2017.10.23 プチフリ対策のための調査 WM_NCHITTESTを捨てていいかどうか
チルトホイールのないマウスで疑似チルトに失敗していた問題を修正
横スクロールの基本動作を互換SCROLL固定にするのをやめてみるテスト
2017.11.16 win10 モダンUI対策(暫定) モダンUIはリダイレクト方法不明
窓をアクティブにしてから Send,ホイールでOSにお任せすることにした
2017.12.19 モダンUI対策 OS標準の「ホバーしたときに非アクティブウィンドウスクロールする」
の状態を確認するようにした
ホバー…スクロールする ON → OSにおまかせ
ホバー…スクロールする OFF → アクティブ化してからOSにおまかせ
Shift+ホイール での横スクロールホットキーを無効化
(チルトマウスの普及率的に不要だろうとコメントアウトしてしまいましたすみません)
2018.05.16 Shift+ホイール での横スクロールホットキーの復帰
Excelで分割/固定ウィンドウでスクロールできなくなっていたのを修正
分割時 : 縦横共に互換モードに戻した(操作するスクロールバーを指定する必要があるため)
固定時 : 非表示のスクロールバーは見ないようにした
モダンUI対策 起動時に1回だけレジストリを確認するように変更
(今まではホイール回すたびに毎回見に行ってた)
2018-05-16T14:31:45+09:00
1526448705
-
メニュー
https://w.atwiki.jp/eamat/pages/2.html
#search()
****AutoHotkey Help
-[[本家日本語版]]
// -[[トップページ]]
// ----
****AutoHotkey LIB
-[[IME制御]]
-[[パス関数群]]
-[[マウス関数群]]
// -[[INI]]
// -[[Menu]]
// -[[LogWindow]]
// -[[(LibList)]]
****My Script
-[[WheelScroll.ahk>>ホイールスクロール]]
// -[[AAMenu]]
// 秀丸と連携
// -[[Syntax活用]]
// -[[Ahk2Exe on Hidemaru]]
// -[[AhkTrial]]
// 小ネタ
// -[[AHK Edit Chenger]]
//
// ----
// : 更新履歴 |
// #recent(10)
2015-07-11T19:03:30+09:00
1436609010
-
本家日本語版
https://w.atwiki.jp/eamat/pages/1.html
*仮倉庫
**AutoHotkey 日本語リファレンス chmヘルプ版 (AutoHotkeyJP.chm)
[[AutoHotkeyを流行らせるページ>>http://lukewarm.s101.xrea.com/]]の解説ページを.chmに固めたものです。
2009.07.02 現在のオンラインページ & ダウンロードマニュアル + α を元にしました。
(ダウンロード版とオンラインページはファイルごとに比較して記述が新しそうなほうを採用してます。)
:ダウンロード|
-[[ヘルプファイル>http://www6.atwiki.jp/eamat/pub/AhkHelp/AhkHelpJP_20090702.zip]] (AhkHelpJP_20090702.zip : Version 1.0.48相当)
-[[ヘルプソース>http://www6.atwiki.jp/eamat/pub/AhkHelp/AhkHelpProject_20090702.zip]] (AhkHelpProject_20090702.zip : ヘルプましん用プロジェクトデータ)
:※.chm版作成者注記 | 流行らせるページトップに「もはや熱心に更新されることはない」と告知が出てしまったので本家との差異がある部分はわかる範囲で補完させてもらうことにしました。
あまりよくわかってない状態で翻訳してるので間違ってたらすいません。
&color(Brown){(仮)対応版ということで、後日[[流行らせるページ>>http://lukewarm.s101.xrea.com/]]で正式訳が出たものはそちらを優先し差し替える方向でやりたいと思います。}
>***更新内容
>:v1.0.47.05 (流行らせるページに説明のない項目)
>|・Tab2(GUI) 改善された新しいTab : 本家から適当に補完
>:v1.0.48 の主な変更点 (参照:[[http://pc12.2ch.net/test/read.cgi/software/1230694774/344-345>>http://pc12.2ch.net/test/read.cgi/software/1230694774/344-345]])
>|・Autohotkey_Lより追加
> IsFunc() : 流行らせるページ更新分より
> while-loop : 流行らせるページ更新分より
> assume-static : 本家から適当に補完
> A_IsPaused / A_IsCritical : 本家から適当に補完
> WheelLeft と WheelRight : 本家から適当に補完
>・NumPutで UInt64をサポート : 本家から適当に補完
>・SetFormatの速いモード追加 : 本家から適当に補完
>・SetFormat Float の高精度化 : 本家から適当に補完
>・動的関数呼び出しの変更・改善 : 本家から適当に補完
>:v1.0.48.01|
>・ListLines On/Offパラメータ追加 : 本家から適当に補完
>:その他|
>・Suspend (A_IsSuspended) : 本家から適当に補完
----
2014.3.10 お漏らしメールが来たのでパスワード変更
----
#right(){&color(#cccccc){&counter()}}
2014-03-10T15:54:44+09:00
1394434484
-
IME制御
https://w.atwiki.jp/eamat/pages/17.html
#right(){&color(#cccccc){&counter()}}
*IME制御用 関数群 (IME.ahk)
AutoHotkey上で日本語入力の制御を可能にするための関数群、IMM32 API使用
AutoHotkey_L (A32/U32/U64)に対応しました。
***ダウンロード
-[[IME20121110.zip>http://www6.atwiki.jp/_pub/eamat/MyScript/Lib/IME20121110.zip]] (本家,A32/U32/U64 同梱)
-旧バージョンは[[このへん>>http://www6.atwiki.jp/_pub/eamat/MyScript/Lib/]]
***内容
-説明書 [[IME.txt]]
-ソース [[IME.ahk]]
***使用方法
・#Includeで組み込む
・Libフォルダにコピーして関数ライブラリスクリプトとして
・必要部分だけコピペで切り出す、等
***関数一覧
|IME_GET( ) | IMEのON/OFF 状態の取得|
|IME_SET( ) | IMEのON/OFF 状態の制御|
|IME_GetConvMode( ) | IME 入力モードの取得 (あアアAA)|
|IME_SetConvMode( ) | IME 入力モードの制御|
|IME_GetSentenceMode( ) | IME 変換モードの取得(人名/一般/話し言葉など)|
|IME_SetSentenceMode( ) | IME 変換モードの制御|
|IME_GetConverting( ) | IME 文字入力の状態を返す(入力・変換中/変換候補ウィンドウ表示中 など)|
***更新履歴
>:2012.11.10
>|・AutoHotkey_L (A32/U32/U64)対応
>・WinTitleパラメータが実質無意味化していたのを修正
>・スクリプトのファイル形式をUTF-8(BOM付)に変更
>:2009.12.03
>|・IME 状態チェック GUIThreadInfo 利用版 入れ込み
> IEや秀丸8βでIME状態が取れなかったのを対応した
> 参考:http://blechmusik.xrea.jp/resources/keyboard_layout/DvorakJ/inc/IME.ahk
>・Google日本語入力β 向け調整
> 入力モード 及び 変換モードは取れないっぽい
> IME_GET/SET() と IME_GetConverting()は有効
>:2009.07.02
>|・AutoHotkey スレッド part8 99にあった IME_IsConverting() をパクって追加
> http://pc12.2ch.net/test/read.cgi/software/1243005818/99-105
> > 99 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/06/02(火)
> >対象窓で、文字入力中or変換中なら1を、変換候補窓が出ているなら2を、
> >それ以外なら 0を返す。
> >ATOK2007とMS-IME8.1で確認。クラス名がバージョンの数値違いだけなら
> >別verでも通用するかも。
>・パラメータのWinTitleの既定値を アクティブウィンドウにしたはいいが、
> 何故だか妙に回りくどいことをやっていて、Last Found Window
> (http://lukewarm.s101.xrea.com/Window.html#lastfoundwindow)
> が有効にならない仕様になってたのを修正
>・DllCallだと隠しウィンドウでも操作可能なようなので
> AHK内蔵のSendMessageコマンド → DllCall("SendMessaege")に。
> DetectHiddenWindowsのOn/Off廃止
2012-11-14T00:05:39+09:00
1352819139
-
パス関数群
https://w.atwiki.jp/eamat/pages/21.html
#right(){&color(#cccccc){&counter(total)}}
*ファイルパス関数群 (Path.ahk / Path2.ahk)
ファイルパス関連の関数をまとめたもの、AutoHotkey_L (A32/U32/U64)に対応
***動作環境
|OS|NT系 IE 4以上 (SHLWAPI.DLL使用)|
|本家|v1.0.34~1.0.48くらい|
|AHK_L|AHK_L v1.1.01以降|
***ダウンロード
-[[Path20121111.zip>http://www6.atwiki.jp/_pub/eamat/MyScript/Lib/Path20121111.zip]] (本家,A32/U32/U64 同梱)
// -旧バージョンは[[このへん>>http://www6.atwiki.jp/_pub/eamat/MyScript/Lib/]]
***内容
-説明書 [[Path.txt]]
-ソース(AHK_L用) [[Path.ahk]] / [[Path2.ahk]]
-ソース(本家用 旧) [[Path.ahk>Path.ahk(旧)]] / [[Path2.ahk>Path2.ahk(旧)]]
***使用方法
・#Includeで組み込む
・Libフォルダにコピーして関数ライブラリスクリプトとして
・必要部分だけコピペで切り出す、等
***関数一覧
*****Path.ahk : Shell Utility API まとめ
判定系 (存在チェック)
|Path_FileExists( )|ファイルの有無をチェックする|
|Path_IsDirectory( )|ディレクトリが存在するかチェックする|
|Path_IsUNCServerShare( )|存在しているUNC(ネットワーク)パスか|
文字列の記述ルール チェック
|Path_IsFileSpec( )|文字列がファイル名のみ仕様か|
|Path_IsPrefix( )|指定されたパスの先頭がPrefixで始まってるか|
|Path_IsRelative( )|文字列が相対パスか絶対パスか|
|Path_IsRoot( )|文字列がルートかどうか|
|Path_IsSameRoot( )|2つのパス文字列が同一のルート要素を持つか|
|Path_IsURL( )|文字列がURLとして解釈できるか|
|Path_IsUNC( )|文字列が UNC(ネットワークパス)か|
|Path_IsUNCServer( )|文字列が サーバーパスのみのUNCか|
|Path_MatchSpec( )|指定のファイル名がワイルドカードか|
|Path_GetCharType( )|文字cをパスとしてどのように使用できるか|
変換系
|Path_GetLongPathName( )|ロングファイルネームを返す|
|Path_GetShortPathName( )|8.3形式のファイルネームを返す|
|Path_SearchAndQualify( )|フルパスを生成する|
|Path_AddBackslash( )|パス名の最後尾にバックスラッシュをつける|
|Path_RemoveBackslash( )|パス名の最後尾のバックスラッシュを削除|
|Path_RemoveBlanks( )|文字列から最初と最後のスペースを削除|
|Path_QuoteSpaces( )|パス名がスペースを含む時に""でくくる|
|Path_UnquoteSpaces( )|""で囲まれたパス名からマークを取り除く|
|Path_RenameExtension( )|拡張子だけを変更したパス名を取得す|
抽出系
|Path_StripToRoot( )|パス名からルート情報を取得|
|Path_GetDriveNumber( )|パス名からドライブ番号を取得|
|Path_FindFileName( )|フルパス名からファイル名のみを取り出す|
|Path_StripPath( )|指定されたファイル名からパス部分を削除|
|Path_RemoveFileSpec( )|フルパス名からディレクトリを取出す|
|Path_SkipRoot( )|パスから共有名部分を除く|
|Path_FindExtension( )|パス名から拡張子だけを取り出す|
|Path_RemoveExtension( )|パス名から拡張子のみを除いたパス名を取得|
|Path_GetArgs( )|コマンドライン引数を抽出|
|Path_RemoveArgs( )|引数部分を削除|
|Path_CompactPathEx( )|ファイルパス文字列を指定した長さに縮める|
|Path_CommonPrefix( )|先頭から共通するディレクトリ名を取得する|
相対パス関連
|Path_RelativePathTo( )|相対パスを作成|
|Path_Combine( )|ファイルパス文字列を結合|
|Path_Canonicalize( )|..¥ を展開(絶対パスへ)|
AHKコマンド互換関数
|Path_SplitPath( )|SplitPath互換 ダメ文字対応版|
*****Path2.ahk : 実在のパスを探す系
|Path2_GetTempFileName( )|テンポラリを作成し名前を返す|
|Path2_GetExecutablePath( )|実行ファイルパスを得る|
|Path2_GetCommandLine( )|コマンドラインを取得|
|Path2_DropFiles( )|ファイルドロップ関数|
|Path2_ExtractPath()|有効パスを抽出して返す|
***更新履歴
>:2012.11.08|U64対応 公開
2012-11-14T00:04:24+09:00
1352819064