「WheelScroll.ahk」の編集履歴(バックアップ)一覧はこちら
「WheelScroll.ahk」(2018/05/16 (水) 14:33:39) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<div style="font-family:'MS Gothic', monospace;margin-left:1em;line-height:130%;">
<table style="border-collapse:collapse;border-width:0;"><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 /></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 /><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 /><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><br /><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><br /><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 /><br />
HScroolList = <span style="color:#008000;background-color:#FFFCF2;">;
HM32CLIENT ;秀丸</span><br />
,Excel7 <span style="color:#008000;background-color:#FFFCF2;">;MS-Excel(2007)</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 /><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 /><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")<br /><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>
<br /><div style="color:#FF0000;background-color:#FFE6EE;">
MouseIsOverAndWheelRouting(WinTitle) {</div>
<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 />
<span style="color:#5353FF;background-color:#FFFCF2;">if</span> (mwr <
<span style="color:#0000FF;background-color:#FFFCF2;">2</span>)<br />
<span style="color:#5353FF;background-color:#FFFCF2;">return</span><br />
<span style="color:#5353FF;background-color:#FFFCF2;">MouseGetPos</span>,,,
Win<br />
<span style="color:#5353FF;background-color:#FFFCF2;">Return</span>
<span style="color:#4A0095;background-color:#FFFCF2;">WinExist</span>(WinTitle
. " <span style="color:#9425A7;background-color:#FFFCF2;">ahk_id</span> " .
Win)<br />
}<br /><span style="color:#008000;background-color:#FFFCF2;">; */</span><br /><br /><span style="color:#008000;background-color:#FFFCF2;">;#IfWinActive ahk_class
HH Parent</span><br /><span style="color:#008000;background-color:#FFFCF2;">;WheelDown::
Send,{WheelDown}</span><br /><span style="color:#008000;background-color:#FFFCF2;">;WheelUp::
Send,{WheelUp}</span><br /><br /><span style="color:#808000;background-color:#FFFCF2;">#</span><span style="color:#5353FF;background-color:#FFFCF2;">IfWinActive</span><br /><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><br /><div style="color:#008080;background-color:#E3FFC6;"><span style="color:#008000;background-color:#E3FFC6;">+WheelDown::
WheelRedirect(1)</span></div>
<div style="color:#008080;background-color:#E3FFC6;"><span style="color:#008000;background-color:#E3FFC6;">+WheelUp::
WheelRedirect(1)</span></div>
<span style="color:#008000;background-color:#FFFCF2;">;</span><br /><span style="color:#008000;background-color:#FFFCF2;">;X1+ホイールで横スクロール
2017.10.20</span><br /><div style="color:#008080;background-color:#E3FFC6;"><span style="color:#008000;background-color:#E3FFC6;">XButton1 & WheelUp::
WheelRedirect(1,0)</span></div>
<div style="color:#008080;background-color:#E3FFC6;"><span style="color:#008000;background-color:#E3FFC6;">XButton1 & WheelDown::
WheelRedirect(1,1)</span></div>
<div style="color:#008080;background-color:#E3FFC6;"><span style="color:#008000;background-color:#E3FFC6;">XButton1:: XButton1</span></div>
<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;">;
Functions</span><br /><span style="color:#008000;background-color:#FFFCF2;">;==============================================</span><br /><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 /><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;">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 /><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;">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 /><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 /><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 /><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 /><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 /><br /></div>
</td>
</tr></table></div>
<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>
表示オプション
横に並べて表示:
変化行の前後のみ表示: