プロが教える店舗&オフィスのセキュリティ対策術

現在、VB6.0にて開発をしていますが、
OSがWindowsVistaでユーザーアカウント制御機能がON
の場合のみ、SendMessegeで他のプログラムに情報が送信できません。 ユーザーアカウント制御機能をOFFにしている場合はできるのですが、理由と対処方法がわかりません。
ユーザーアカウント制御機能をOFFにすればいいのですが、別の理由でOFFにできません。
どなたかお解りの方がいましたらお教え下さい。
よろしくお願いします。

A 回答 (2件)

制御しようとしているアプリはAdmin権限で動いているのではないでしょうか?



UAC(ユーザーアカウント制御)が有効の場合は、アプリは特に指定しないかぎりUsers権限で動作します。
Users権限で動いているアプリからAdmin権限で動いているアプリを制御できません(UIPI)。
Admin権限で動いているアプリを制御するためには、自アプリもAdminに昇格する必要があります。


ユーザーインターフェイス特権の分離 (UIPI)
http://msdn.microsoft.com/ja-jp/windows/dd871146 …

Windows Vistaでプログラムを管理者モードで実行する
http://www.atmarkit.co.jp/fwin2k/win2ktips/899ua …

マニフェストでrequireAdministrator
http://www.microsoft.com/japan/events/newsletter …
    • good
    • 0

理由はセキュリティでしょう。



対処方法はないです。
※わざわざ制限しているセキュリティを破る方法、もしあったとしても、次のWindowsUpdateで修正されているかも知れません。

なぜ、別のアプリにSendMessageしなければならないか、なぜユーザアカウント制御をOFFにできないか、別の(専用の)PCを一台用意して、そのPCのみユーザアカウント制御をOFFにする運用はできないか、そもそもVB6でなければならないのか(.Netでも同じ制限があるのか、別の回避方法があるのか?)、等々、仕様の変更、設計の変更、運用方法で対処などなど、必要なら言語を変更して一からやり直しまで考慮した上での対応を。

ユーザアカウント制御によらず、権限絡みの問題は特殊な環境(インストール不可、レジストリアクセス不可、ファイル保存不可、ファイルの新規作成はできても上書きは不可(なぜ?))もあり得るため、受注時点で動作保証できる環境を決めておいた方がいいでしょう。
Windowsデフォルトインストールで、管理者権限で動作保証、ユーザ権限で動作保証、ウィルスバスターなどのセキュリティ対策ソフトで通信を妨害しないように正しく設定した場合に動作保証、などなど。
特殊な設定をしていないか、システム管理者の方に確認をしておく等々。

解決策ではありませんが、ご参考に。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!