NY WheelVersion 3.07 (build 195)     
〜 フリーソフト for Windows 〜

最終更新:2009年7月2日(木)

マウスのホイール操作が、非アクティブなウィンドウでも可能になります。
対象OS:Windows 2000/XP/Vista/7RC (32bit/64bit) - Win95/98/Meでは動作しません
実行ファイルのサイズ15KBの軽量単機能アプリで、VC6用ソースコード(VC2008でもビルド可)も添付しています。

News

2009-7-2 (木)
Version 3.07 build 195 公開。
64bit対応。ただし、動作テストは一切行っていない人柱版。
2009-6-15 (月)
Version 3.06 build 192A 公開。
NY Wheel本体には変更なし。セットアッププログラムの問題修正。
セットアップ完了後に自動起動したNY Wheelが、インストール時の一時フォルダをロックしてしまっていたのを修正。一時フォルダを削除できず困っている方は、セットアップが自動起動させたNY Wheelを終了させると削除できるようになります。なお、この問題はVer.3.06のセットアップ時に限り発生し、OS起動時にスタートアップで開始するNY Wheelは問題ありません。
2009-6-14 (日)
Version 3.06 build 192 公開。機能強化
セットアッププログラムがWindows 2000にてエラーが発生していたのを修正。さらにセットアップの機能を強化し、Ver.2以前の古いバージョンからでも上書きでアップデートできるようにした。
MS Officeとの相性を改善。Word/Excel/PowerPoint/Accessのウィンドウ内ではNY Wheelを動作させないように変更。
2009-6-1 (月)
Version 3.05 build 185 公開。
セットアッププログラムの実行権限設定にミスが見つかり、修正。Vistaにてインストールに失敗する可能性があった。
アンインストーラを改良し、NY Wheelが動作中の場合でも削除できるようにした。
2009-5-31 (日)
Version 3.04 build 180 公開。インストーラ追加。
右クリックメニューにバージョン情報と、このページへのリンクを追加。機能には変更なし。
INFインストールが失敗することがあるとの報告を受け、簡単なセットアッププログラムを追加。
2009-5-1 (金)
Version 3.03 build 177 公開。小改良。
IE6のSELECTドロップダウンコンボボックス上でもむやみとホイール操作を行わないように変更。なおIE7/8やFirefox等では最初からこの問題は存在しない。
Vista以降限定だが、横スクロールメッセージ(WM_MOUSEHWHEEL)も転送するようにした。
2009-2-27 (金)
Version 3.02 build 171 公開。動作の改善。
ドロップダウンコンボボックス(右側に▼ボタンがある選択肢入力ボックス)上ではむやみとホイール操作を行わないように変更。入力フォーカスがありかつマウスカーソルが上にある時以外はホイール操作を無視するようにした。
2009-2-26 (木)
Version 3.01 build 169 公開。
入力フォーカスのあるウィンドウ上では何も余計な処理をしないように変更。コントロールパネル等のダイアログボックス上での動作を改善。エクスプローラが死んで自動復活した時にアイコンが消えてしまっていた(V3.00にて新たに混入した)バグを修正。
Vistaにてタスクスケジューラを使って自動起動させている時に、ユーザーの切替を行うとNY Wheelが自動起動しない問題を修正。([NY Wheel.xml]の変更)
2009-2-9 (月)
Version 3.00 build 163 公開。Windows Vista に対応。
DLLファイルを廃止しプログラムは単一のEXEファイル一本に。
2009-1-11 (日)
Version 2.02 build 144 公開。Vistaを動作対象OSから除外。
DLLモジュールのCランタイムライブラリへの依存性を解消し、プログラムを軽量化&コンパクト化。機能には変更なし。
2008-12-12 (金)
Version 2.01 build 140 公開。
プログラム終了時にDLLをすぐに解放するように改良。固まって無応答になっているアプリが存在しなければ終了後すぐにDLLは解放される、はず。
2008-12-8 (月)
Version 2.00 build 138 公開。Unicode化&バグ修正
Win9x系OSのサポートを打ち切り、NT系OSネイティブであるUnicode版APIをコールするように変更。従来版との動作上の相違は特になし。システム負荷軽減?
CtrlやShiftキーを押しながらホイールを回した時などに、ホイールのカウントを二倍に増やしてしまうことがあったのを修正。
2003-5-2 (金)
Version 1.03 build 121 公開。
1.03 build 120 には、トレイアイコンを過度に再描画していたバグがあり、終了時にタスクトレイにアイコンが残留することがあった。ソース nywheel.cpp 189行目のif文の中括弧の囲み忘れというお粗末なミスが原因で、それを修正。nywheel.exe のみの修正で、DLL には変更なし。バグ修正のみなので、バージョン番号も変更なし。
2003-1-29 (水)
Version 1.03 build 120 公開。
一時停止機能を設けてみた。問題があった場合に一時的に動作を止めることができるわけだが、おそらく使うことはないと思われ。
2003-1-23 (木)
Version 1.02 build 118 公開。
Win98以前に作られた古いアプリの一部でも動作するようにした。具体的には:
  ・ HTMLでない、古いWinHelpシステム(拡張子.HLP)
  ・ Common Controls の SysListView および SysTreeView コントロール
の、古いコントロールに対応。(Simple is Best の手抜き実装につき凝ったことはしていません)
2002-10-18 (金)
MS Office の同一アプリ内の文書どうしの間では作動しないことが判明。
詳しくは →既知の問題点 を参照。
2002-10-10 (木)
Version 1.01 build 107 公開。
アイコンのデザインを変更。それ以外に build 105 との変更点なし。
配布パッケージにソースコードを添付。
2002-10-8 (火)
Version 1.00 build 105 人柱版 初公開。

機能と目的

 NY Wheelはタスクトレイに常駐して動作し、マウスのホイール操作を便利にします。非アクティブなウィンドウの上であっても、いつでもマウスカーソルの乗っているウィンドウ上でホイールによるスクロールを可能にします。
 なお、上記の内容はマイクロソフト製のマウスドライバを前提にしています。他社製のマウスドライバだと既にこの機能が実現されていることがあり、その場合はNY Wheelは不要です。(例えば、IBM/Lenovoトラックポイントや、エレコムのマウスドライバなど)

 システムへの負荷をトコトン小さくすることを目標に作成したシンプルな単機能ソフト。その他の機能は一切ありません。NY WheelはレジストリやWindowsのシステムフォルダにはなんの変更も加えません。マウス操作が変更されるのはプログラム実行中だけで、終了させれば痕跡やゴミを残すことなく元に戻ります。(インストーラの情報やエクスプローラの操作履歴などは除く)

Windows 2000/XP/Vista/7RC (32bit/64bit)で動作します。
Windows 95/98/Me/NT4 は動作対象外です。また、64bit版の動作テストは行っていません。

既知の問題点 もお読みください。

動作のしくみ

※ プログラマ向けの情報です。プログラム技術の核心に触れる親切な解説です(^^ゞ

 マウスのホイールを回すとWindowsのシステムからアプリケーションに向けてWM_MOUSEWHEELメッセージが送信されます。ホイール対応のアプリはこのメッセージに適切に応じることで、ホイールによるスクロールを実現しています。また、MS IntelliPointなどのマウスドライバはホイール非対応のアプリでもスクロールできるように、WM_MOUSEWHEELメッセージの代わりにWM_VSCROLLメッセージ等を送信することでアプリ側にスクロールバーを操作されたと勘違いさせてスクロールを実現しています。

 NY Wheel(Ver.3) は、WH_MOUSE_LLフックを使用してマウスイベントを監視し、ホイール操作が行われた時にマウスカーソル位置のウィンドウに直接WM_MOUSEWHEELを送信することで上記の機能を実現しています。

 Ver.2 までの旧バージョンではWH_GETMESSAGEフックを使用していましたが、その場合フック関数はDLLとして実装され、nywheel.exeからではなくメッセージ処理が発生したそれぞれのウィンドウのコンテキストで呼ばれる構造になっていました。これによりVistaで導入されたUAC環境下において、アクティブウィンドウが権限の低いプロセスである時にそれよりも権限の高いウィンドウにメッセージを転送できないという制限が発生していました。Ver.3で使用しているWH_MOUSE_LLのフック関数はnywheel.exeプロセス自身のコンテキストで呼ばれるため、DLLに実装されたフックと比べてマウスイベントの度にタスク切替が発生するというデメリットもありますが、nywheel.exeを十分に高い権限で動作させればUAC下でも他のウィンドウに正しくメッセージを転送できるようになりました。ついでに、DLLを廃止し単一のEXEファイルに一本化することが可能になりました。

ダウンロード

ZIP形式で圧縮されています。フリーソフトです。
お使いのパソコンに優秀なマウスドライバがインストールされていると既に同様の機能が実現されている可能性があり、その場合はこのソフトは不要です。(例えば ThinkPad ノートに搭載の「IBM トラックポイント」や、エレコムのマウスドライバなど)

NY Wheel Version 3.07 (build 195) [2009-7-2(木)公開] →変更点
  wh-3.07.195.zip   (38KB) VC++6.0用ソース付属/VC++2008用プロジェクトも同梱
   対象OS:Windows 2000/XP/Vista/7RC (32bit版) - Win95/98/Me/NT4は対象外です。
  wh-3.07.195.x64.zip   (77KB) バイナリファイルのみ。ソースは32bit版と共通。
   対象OS:Windows XP/Vista (64bit版) - ただし動作未検証。

☆ Vistaでの注意点 ☆
 「盾」アイコンが付いていて起動時に画面が暗転しUACの警告が出るアプリなど、権限を昇格しているウィンドウを開いている場合、そのウィンドウに対しては NY Wheel は動作しません。NY Wheelも権限を昇格して起動させればいいのですが、そうすると起動時にいちいちUACの警告が出て鬱陶しいので、敢えてそのようにはしていません。
 これが不便に感じる方は以下の操作を行うことで、すべてのウィンドウでNY Wheelが動作するようにできます。(ただし管理者アカウントでログオンしている場合のみ。一般ユーザーアカウントでは下の方法では自動起動しませんので、スタートアップをお使いください。)
  1. スタートアップに登録されたNY Wheelのアイコンを削除してから、
  2. タスクスケジューラを開き「タスクのインポート」を行って、同梱されている「NY Wheel.xml」を読み込ませてください。タスクのプロパティ画面ではそのままOKをクリックし、タスクを登録してください。登録が完了したら「NY Wheel.xml」は不要なので削除しても構いません。
    ※ アップデートの場合など、NY Wheelという名前のタスクが既に存在しているとインポートできません。既存のものを削除してからインポートして下さい。
  3. これで次回ログオン時から権限を昇格した状態でNY Wheelが自動起動するようになり、すべてのウィンドウに対してNY Wheelが動作するようになります。
なお、タスクスケジューラに設定した項目はアンインストール時に自動では削除されません。各自手作業で削除してください。

既知の問題点

現在公開中のバージョンには、以下の問題点があることがわかっています。

それでは、Enjoy!


NY Wheel ©2002-2009 Nagano Yutaka