kamigaki.net / Software / Wheel Ball /

Wheel Ballの Windows Vistaでの使用注意

ヘルプファイルを表示する前に

Wheel Ballのヘルプファイル(WheelBall.chm)は、Vistaではそのまま開くと内容が表示されません。ファイルのプロパティを表示させて、以下の画面を参考に「ブロックの解除」をしてください。

help file property

水平ホイールについて

Wheel Ball ver1.51βから、Windows Vistaからの新機能「水平ホイール」に対応しました。しかし現状では動作するアプリケーションは限られています。今後は少しずつ対応ソフトが増えてくると思われますが、当分の間は、ほとんど動作しない試験的な機能とお考えください。

水平ホイール対応が確認できているソフトは、以下のようなものです。

Windows Vista 標準コントロールの一部は(EDITコントロールや、LISTBOXコントロール)水平ホイールに対応しているようなので、その部分では特別な変更をしなくても、Vistaで使えば水平ホイール可能になるようです。

一方、独自のコントロールを使用しているソフトでは、プログラム側を修正しないと水平ホイールは動作しません。(WM_MOUSEHWHEELという新たに定義されたメッセージを処理する必要がある。)

また、マイクロソフト正式には水平ホイールへの対応はVista以降となっていますが、ソフト側で水平ホイールに対応していれば、多くの場合Windows XPでもWheel Ballから水平ホイールさせることが可能です。例えばFirefoxはVista, XPのどちらでもWheel Ballから水平ホイールさせることができます。

実行権限について

Windows Vistaから強化されたセキュリティの機能により、Wheel Ballは普通に起動すると、管理者権限で実行されたソフト上では正しく動作しません。

Windows Vista では従来のWindowsよりもセキュリティの強化に力を入れています。UAC などが有名ですが、Wheel Ballに関連してくるのは、UIPI(ユーザーインターフェイス特権の分離)といわれる新機能です。

UIPIとは、アプリケーション実行時の権限(UI特権レベル)を3つに分けて、権限の低いプロセス(※)から、権限の高いプロセスへの操作を防止する機能です。(※プロセスとはアプリケーションの実行単位です。例えばメモ帳を2つ起動すると、メモ帳のプロセスが2つできることになります。)

Vistaにおいて UI特権は以下の3つに分けられます。

例えば、標準権限プロセスから、同じく標準権限のプロセスや、低ILのプロセスを操作することはできますが、管理者権限のプロセスを操作することはできません。これによって、悪意をもったソフトが、管理者権限のプロセスにメッセージを送って操作する攻撃等を防止しています。

さてWheel Ballは、他のプロセスへメッセージを送ることで擬似的なホイールを実現させていますが、普通に起動すると標準権限として実行されるために、管理者権限のプロセス上では、ホイール操作や、スイッチに設定してあるボタンの入力ができなくなります。

この制限の回避策は、Wheel Ballを管理者権限で実行することです。アプリケーションアイコンを右クリックして、コンテキストメニューから「管理者として実行(A)...」を選択することで、管理者権限で実行することができます。実行の前にはUACにより警告ダイアログが表示されます。管理者権限で実行されたWheel Ballからは全てのプロセスを操作することができるようになります。

しかし、Wheel Ballのような常駐アプリケーションを、管理者権限で長時間実行することは、セキュリティ上あまり望ましくありません。また、一般的に管理者権限のプロセスはシステムの設定変更ダイアログなど、ごく一部で、また短時間使うだけなので、操作できないものと割り切ってもほとんど問題はないと思われます。

よって、標準権限のまま使用して、管理者権限プロセスでの操作はあきらめることを推奨します。また、管理者権限のプロセス上で、Wheel Ballのスイッチに設定してあるボタンを使用する場合には、タスクトレイメニューから一時的に制御停止するか、終了させてください。(この操作は管理者権限のプロセスを起動した後からでも可能です。)

余談になりますが、マイクロソフトの情報によれば、ソフト開発者がアプリケーションに電子署名して、適切なマニフェストを設定し、指定のフォルダにプログラムを配置することで、標準権限でも管理者権限のプロセスへメッセージを送信し操作することは可能になるようです。しかし、電子署名をするための電子証明書を発行するためにはお金がかかり、個人で開発しているフリーソフトに適用することは難しいので断念しました。どうか、ご理解ください。