eamat @Cabinet

WheelScroll.txt

最終更新:

eamat

- view
管理者のみ編集可
ホイールリダイレクト スクロール制御 (WheelScroll.ahk)
    単体/組込み両対応 (常駐専用)

.■動作環境
    AutoHotkey(_L)   マウスフックの使用できる環境
    動作確認環境: XP、7、8、8.1
    ※高解像度ディスプレイのdpi拡大表示には対応してません

.■概要
    マウス下のウインドウをホイールでスクロール可能にするスクリプト
    秀丸やVBEの分割ウィンドウでいちいちアクティブを切替えずにスクロールしたくて作りました。

.■特徴
   ・スクロール方式をソフト毎に指定可能
   ・旧型(互換スクロール)、ホイール、チルト(新型横スクロール)に対応
   ・制御先をスクロールバーハンドルに指定することで分割ウィンドウ領域 (MS-Word Excel)や
     ホイールで動かないアプリ VisualBasicEditorなどのでのスクロールが可能に。
   ・旧秀丸の独自分割形式(v8以前)分割ウィンドウにも対応

.■使用方法

..◆単体起動
   スクリプトをそのまま実行

..◆組込み
   AutoHotkey.iniなどに組込んで使う場合、AutoExecute セクションに

     #Include WheelScroll.ahk
     Gosub,WheelInit

   を入れる。

.■設定関係
..初期化ルーチン WheelInitを適宜カスタマイズして使用して下さい。

..Hotkey(デフォルト)
  ホイールUp/Downで縦スクロール
  チルトLeft/Rightで縦スクロール
  Shift+ホイールで横スクロール
  適宜変更して下さい

.■制限事項等
    ホイールスクロールはできるだけアクティブ状態を替えず(非アクティブ時は非アクティブのまま)
    行うようにしてます。
    ※ Excelは互換モードではクラッシュしやすいようです
       動作に支障がでるようなら互換モードは避けてホイールモードで動かして下さい。

   マウスポインタがスクロールバー上にある時は正しく動作しないかも知れません。

.■改変・再配布
    改変・再配布ともにご自由にどうぞ
    (スクリプト中のAboutメッセージは適時書き換えて下さい)

.■履歴
    2005.02.10  なんか色々やろうとして複雑になりすぎて挫折

    2007.10.12 過去に作ったサブルーチン集のFunction化
               設定とか凝るのをやめて単純化、Initルーチンで適当に弄れるように。
               何かいつのまにかAHKでコントロールのハンドルが取れるようになってたので
               スクロールのハンドルとか取得してみる

    2008.03.03  ロジクールのチルトマウスでXPで横スクロールさせてみるテスト(F11~F14)
                (2015.07.11 正規チルト対応のため削除)

    2008.05.20 AutoHotkeyを流行らせるアップローダにて公開
               ・互換モードリストに Access97追加 (51行目のコメント外して使って下さい)
               ・基本動作モードのデフォルト値を 1:互換SCROLL → 0:WHELL に。
               ・コメントとか所々説明の変なとこ修正

    2008.05.25 ・コントロールクラスが取れない時はウィンドウクラスを指定するようにした。
                 (Vieas メインウィンドウ用対策)

    2009.06.12 ・マルチディスプレイ対策 (Thanks IKKIさん) (非公開)

    2009.07.22 ・ 秀丸v8対応
               ・IKKI氏によるホイール加速部改造派生版WheelAccel.ahk(http://mobitan.org/ahk/WheelAccel.ahk)の
                 加速モードを逆輸入、オプションで選択できるようにした。
               ・Excelスクロール時の処理をSendからControlSendに変更
                 (TrackWheelの旧バージョンから拝借)

    2012.11.08  U64対応 Uint → Ptrに置換、エンコードをUTF-8に変更
                ※高解像度ディスプレイのdpi拡大表示には対応してません

    2014.03.18  コメント修正

    2014.12.05  VISTA以降のチルトホイール(従来の互換横スクロールではなく)に対応
                チルトホットキー:WheelLeft/Ritht
                チルトホイールコマンド : WM_MOUSEHWHEEL
    2015.07.11  コメント修正

    2017.10.23  プチフリ対策のための調査 WM_NCHITTESTを捨てていいかどうか
                チルトホイールのないマウスで疑似チルトに失敗していた問題を修正
                横スクロールの基本動作を互換SCROLL固定にするのをやめてみるテスト
   2017.11.16  win10 モダンUI対策(暫定) モダンUIはリダイレクト方法不明
               窓をアクティブにしてから Send,ホイールでOSにお任せすることにした
   2017.12.19  モダンUI対策 OS標準の「ホバーしたときに非アクティブウィンドウスクロールする」
               の状態を確認するようにした
               ホバー…スクロールする ON  → OSにおまかせ
               ホバー…スクロールする OFF → アクティブ化してからOSにおまかせ
               Shift+ホイール での横スクロールホットキーを無効化
               (チルトマウスの普及率的に不要だろうとコメントアウトしてしまいましたすみません)
   2018.05.16  Shift+ホイール での横スクロールホットキーの復帰
               Excelで分割/固定ウィンドウでスクロールできなくなっていたのを修正
                  分割時 : 縦横共に互換モードに戻した(操作するスクロールバーを指定する必要があるため)
                  固定時 : 非表示のスクロールバーは見ないようにした
               モダンUI対策 起動時に1回だけレジストリを確認するように変更
               (今まではホイール回すたびに毎回見に行ってた)
記事メニュー
目安箱バナー