1

GetPrivateProfileString() 呼び出しは、Windows XP では正常に機能しますが、Vista で実行すると Access Denied エラーで失敗します。

呼び出しは、私が作成した Windows サービスによって生成されたスレッド内で行われています。Windows サービス自体は、ローカル マシン上のユーザー アカウントの資格情報を使用して実行されます (コードが HKCU へのアクセスを必要とするため、必要と考えられます)。

これは、UAC または仮想化と関係があると思われます。

この呼び出しを Vista で機能させる方法や、解決策を突き止めるために実行できる実験について、何か提案をお待ちしております。

ありがとう

4

1 に答える 1

-1

Vista では、セキュリティ上の理由から、Windows レジストリの一部がロックされています。

たとえば、HKEY_LOCAL_MACHINEにアクセスしようとしている場合、これは正しい権限を持たないユーザーには失敗します。

ユーザーに十分な特権レベルを付与すると、レジストリにアクセスできるようになりますが、レジストリ設定をレジストリのHKEY_CURRENT_USERブランチに移動することをお勧めします。これはロックされておらず、すべてのユーザーがアクセスできるためです。

于 2009-07-28T07:15:02.237 に答える