|
NY Wheel 〜 フリーソフト 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版の動作テストは行っていません。
- フリーソフトです。
- プログラムは小さなEXEファイル一つだけで、他に必要なファイルはありません。
- インストール操作をしなくても、nywheel.exe を実行するだけで動作します。インストール作業を行うことで、ログオン時に自動起動させることもできます。
- 設定ファイルを一切作らず、(アンインストールのための情報を除いて)プログラム自身はレジストリを全く使用しないので、安心してお試しください。
→ 既知の問題点 もお読みください。
動作のしくみ
※ プログラマ向けの情報です。プログラム技術の核心に触れる親切な解説です(^^ゞ
マウスのホイールを回すと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版) - ただし動作未検証。
- ZIPを解凍して出てくる nywheel.exe がプログラム本体で、他のファイルはインストーラやソースコードなどで動作の上では必要ありません。nywheel.exe を直接実行するとすぐに動作を確認できます。実行すると、タスクトレイ(画面右下の時計のあたり)にアイコンが常駐します。終了させるには、そのタスクトレイのアイコンを右クリックして出るメニューに従って下さい。アイコンをダブルクリックすると動作を一時的に停止します。
インストールせずにこのまま使用することもできますが、以下のインストール作業を行ってから使用することをおすすめします。- ダウンロードしたZIPファイルを解凍する際に「展開ウィザード」を使用すると、nywheel.exe を実行した際に「セキュリティの警告」が出ることがあります。@ITサイトのZoneIdの解説に従って nywheel.exe のプロパティを開きブロックを解除して下さい。「展開ウィザード」を使用せずに、ZIPフォルダの中からドラッグ&ドロップでデスクトップなどに解凍するのがおすすめです。なお、以下の setup.exe を使ってインストールを行う場合はZoneIdは自動で解除されます。
- インストール方法
ダウンロードした ZIPファイル を解凍したら NYwheelフォルダ を開き setup.exe を実行してください。ファイルのコピーはすぐに完了し NY Wheel が動作開始します。セットアップが完了すると、スタート→すべてのプログラム→スタートアップ にアイコンが登録されます。
Vista以降のOSをお使いの場合、setup.exe を実行すると『認識できない発行元』との警告がでます。信頼してインストールするのであれば許可してセットアップを開始してください。なお、下の「☆ Vistaでの注意点 ☆」もお読みください。
※ インストール作業が完了すれば、解凍したファイルはもう不要なので削除してください。
※ setup.exe が実際に行っている作業は以下の通りです。
- 動作中の NY Wheel を終了させ
- Ver.2以前のファイルがもしあればそれをごみ箱に移動し
- nywheel.exe ファイルの ZoneId を解除して
- nywheel.exe を Program Files\NYwheel にコピーし
- アイコンを すべてのユーザーの共通スタートアップ に登録します。
- さらに nywheel.inf を Windows\inf フォルダにコピーしてアンインストールのための情報を登録します。
- アップデートの際の注意
■ アップデートはアンインストールすることなくそのまま上書きでインストールできます。setup.exe は動作中の NY Wheel を検出して終了させてからインストールを行うので、何も考えず setup.exe を実行するだけでアップデートは完了します。
Vistaでタスクスケジューラを使って自動起動させている場合は、インストールでスタートアップにアイコンが再登録されてしまうので取り除いてください。Ver.3.00からのアップデートでは [NY Wheel.xml] も変更されていますのでタスクを削除してインポートしなおして下さい。Ver.3.01からであれば変更はないのでそのままでOKです。(「☆ Vistaでの注意点 ☆」も参照)
■ Ver.2以前の旧バージョンのNY Wheelからのアップデートの場合は、スタートアップにアイコンが登録されていれば setup.exe はそれを検出し、旧バージョンのファイルをごみ箱に移動してからアップデートを行います。スタートアップを使用していない場合は旧バージョンは検出できず削除されません。各自手作業で旧バージョンのファイル(nywheel.exeとnywdll.dllの2つ)を削除してから、インストールを行ってください。旧バージョンのプログラムを削除する際には、↓の注意点もお読みください。 ⇒ Version 2.00 以前の NY Wheelでは終了させてファイルの削除を行おうとしても、「nywdll.dll」がシステムによってロックされていて削除・上書きができないことがあります。しばらくそのまま数分間待つと開放されて削除できるようになります。待てない方は、スタートアップから取り除いてからWindowsを再起動し、NY Wheel が一度も実行されていない状態であればすぐに削除できます。(この問題は、バージョン2.01にて改善されました)- アン・インストール方法
コントロールパネルの「プログラムの追加と削除」「アプリケーションの追加と削除」「プログラムと機能」(OSバージョンにより表記は異なります)を開き、「NY Wheel の削除」を行ってください。
Vistaにてタスクスケジューラを使用していた場合は、その設定は自動では削除されません。各自手作業で削除して下さい。 (下記注意参照)
☆ Vistaでの注意点 ☆
「盾」アイコンが付いていて起動時に画面が暗転しUACの警告が出るアプリなど、権限を昇格しているウィンドウを開いている場合、そのウィンドウに対しては NY Wheel は動作しません。NY Wheelも権限を昇格して起動させればいいのですが、そうすると起動時にいちいちUACの警告が出て鬱陶しいので、敢えてそのようにはしていません。
これが不便に感じる方は以下の操作を行うことで、すべてのウィンドウでNY Wheelが動作するようにできます。(ただし管理者アカウントでログオンしている場合のみ。一般ユーザーアカウントでは下の方法では自動起動しませんので、スタートアップをお使いください。)
なお、タスクスケジューラに設定した項目はアンインストール時に自動では削除されません。各自手作業で削除してください。
- スタートアップに登録されたNY Wheelのアイコンを削除してから、
- タスクスケジューラを開き「タスクのインポート」を行って、同梱されている「NY Wheel.xml」を読み込ませてください。タスクのプロパティ画面ではそのままOKをクリックし、タスクを登録してください。登録が完了したら「NY Wheel.xml」は不要なので削除しても構いません。
※ アップデートの場合など、NY Wheelという名前のタスクが既に存在しているとインポートできません。既存のものを削除してからインポートして下さい。- これで次回ログオン時から権限を昇格した状態でNY Wheelが自動起動するようになり、すべてのウィンドウに対してNY Wheelが動作するようになります。
既知の問題点
現在公開中のバージョンには、以下の問題点があることがわかっています。
- チルトホイールなど各メーカー独自の機能には非対応
NY WheelはWindowsに添付された標準マウスドライバで使用することを想定しています。ジェスチャー機能や横スクロール機能など各マウスメーカー独自ドライバの機能については一切対応していません。また、NY Wheelと同様の機能などをすでに備えている多機能なマウスドライバと併用すると、処理が衝突して正常に動作しない可能性があります。
ホイール操作に異常を感じた時はNY Wheelを一時停止してみてください。- カーソル位置のウィンドウに透明な別のウィンドウが重なっていると動作しない
一部の特殊なアプリケーションでは、画面の上に透明な別のウィンドウが重ねられていることがあり、その場合、NY Wheelはホイール操作の指令を一番上にある透明ウィンドウに対して送ってしまうため意図した操作はできず、さらにそのウィンドウ上では全くホイールが使えなくなってしまうことがあります。
このようなアプリは少数ですが存在し、コントロールパネルから開く各種設定画面もこれに該当します。コントロールパネル等のダイアログボックスに対してはそれを検知して自然な操作ができるようにしています。- MS Officeの同一アプリ内のウィンドウ上では動作しない
WordやExcelなどのMS Office製品は、ひとつのアプリ内で複数のドキュメントを同時に編集することができますが、同じアプリで開いているそれぞれの文書ウィンドウ、例えば、Wordで複数の文書を開いた時のそれぞれの文書ウィンドウの間ではNY Wheelの効果はありません。同様にOffice上で動作しているVBAフォームなどのウィンドウに対してもNY Wheelは動作しません。なお、WordとExcelの文書間といった、アプリが異なるウィンドウに対しては動作します。- ホイール非対応のソフトでは、“裏スクロール”は動作しない
元々ホイールに対応してなく、マウスドライバによって擬似的にホイールスクロールが実現されていたソフトでは、NY Wheel は動作しません。
現在流通しているソフトの大半はホイールに対応しているのでこの問題が起きることは稀ですが、非常に古いソフトなどでそうなることがあります。一部のものに対しては擬似スクロールする対処を行っています。
それでは、Enjoy!