Windows Vistaのユーザーアカウント制御ダイアログでKeyPointerが動作しない問題について

ユーザーアカウント制御というのはWindows Vistaのセキュリティ機能の一つですが、このダイアログが表示されているときにはKeyPointerが動作しなくなります。KeyPointer自体の修正による対策は困難なので先に対応方法だけ示します。

ユーザーアカウント制御ダイアログはデフォルトボタンが「キャンセル」になっており、EnterキーでOKすることができませんがTabキーでフォーカスを移動させる事が可能ですので「OK」ボタンにフォーカスを合わせてEnterキーあるいはスペースキーでOKボタンを押すことができます。

あるいはユーザーアカウント制御そのものを無効にするという方法もあります。「コントロールパネル」-「ユーザーアカウント」-「ユーザーアカウント制御の有効化または無効化」にて設定できます。この場合は当然セキュリティリスクを抱える事になりますので自己責任でお願いします。

また、現時点でシステムの詳細設定やデバイスマネージャを呼び出した際にユーザーアカウント制御ダイアログが消えたあともまだKeyPointerが動作しないという現象を確認しています(ユーザーアカウント制御を無効にした場合には発生しない)。こちらについてはKeyPointerのショートカットのプロパティの詳細設定にて「管理者として実行」にチェックを入れることによって回避できますが、KeyPointerの起動のたびにユーザーアカウント制御ダイアログが出ることになります。

以下は言い訳です。KeyPointerが利用しているキーボードフックという機能は昨今のスパイウェアあるいはマルウェアと呼ばれるソフトによってよく利用されている機能でもあります。ユーザーのキー入力が監視する事によりパスワードを盗み取るなどと言ったことが可能です。ユーザーをそういった脅威から守るためのダイアログ上でキーボードフックが無効にされるのはむしろ自然と言えるでしょう。

Windows標準のマウスキーはユーザーアカウント制御ダイアログ上でも利用できるのですが、こちらはおそらくキーボードドライバを直接制御しているのではないかと思われます。KeyPointerもキーボードドライバを制御する形式に作り替えることができれば解決すると思うのですが、残念ながら私の技量およびやる気の不足によりその作り替えは困難です。