![]() |
Windows Vista での動作について |
Windows Vista では、セキュリティを強化した結果、XPで正常に動作していたアプリケーションの多くが正常に動作しなくなりました。
UAC(ユーザーアカウント制御)がデフォルトで有効になっています。
UACが有効になっていると、管理者ユーザーでログインしても、実行させるアプリケーションは標準ユーザーとして実行されます。
管理者として実行しようとすると、いちいち許可を求めるダイアログが表示され、それに許可をする必要があります。
タスクトレイに常駐するアプリケーションも、アプリケーション毎に許可をする必要があります。
このUACは、「コントロールパネル」−「ユーザーアカウントと家族のための安全設定」−「ユーザー
アカウント」
−「ユーザーアカウント制御の有効かまたは無効化」で無効にすることができます。
UACを無効にすると、XPで動作していた多くのアプリケーションは正常に動作するようになります。
しかしこの方法はお薦めできません。
そうするくらいなら、XPをインストールした方がマシです。
管理者権限が必要なアプリケーションは極力動作させないようにして、必要時にのみ動作させるようにすることです。
常時動作さすアプリケーションは、すべて標準ユーザーとして実行すべきです。
UACにも関連することですが、特権レベルの異なるアプリケーション間では、Windowsメッセージの受け渡しができません。
簡単に言うと、標準ユーザーとして実行したアプリケーションでは、管理者として実行したアプリケーションのメッセージを読み取ることができません。
逆に、管理者として実行したアプリケーションは、標準ユーザーとして実行したアプリケーションのメッセージをブロックして、読み取ることができません。
つまり特権レベルが同じアプリケーション同士でしか、Windowsメッセージのやりとりができないということです。
これはWindowsメッセージをフックする多くのアプリケーションに弊害をもたらします。
私が公開しているキーボードフックやマウスフックを使用している常駐ソフトは、正常に動作しないことになります。
これを避けるためにも、すべてのアプリケーションを標準ユーザーとして実行さすべきです。
そうすれば私の公開しているアプリケーションも、ほとんどが正常に動作するはずです。