2009-07-28 9 views
1

Un appel GetPrivateProfileString() fonctionne correctement sur Windows XP mais échoue avec une erreur Accès refusé lors de l'exécution sur Vista.GetPrivateProfileString() donne accès refusé erreur sur Vista

L'appel est en cours à l'intérieur d'un thread engendré par un service Windows que j'ai écrit. Le service Windows lui-même est exécuté en utilisant les informations d'identification d'un compte d'utilisateur sur la machine locale (jugé nécessaire car le code nécessite l'accès à HKCU). Je suppose que cela a quelque chose à voir avec l'UAC ou la virtualisation.

J'aimerais recevoir des suggestions sur la façon dont je peux faire fonctionner cet appel sur Vista, ou sur les expériences que je peux exécuter pour trouver une solution.

Merci

Répondre

0

Certaines parties du registre Windows sont verrouillés dans Vista pour des raisons de sécurité. Par exemple si vous essayez d'accéder au HKEY_LOCAL_MACHINE cela échouera pour un utilisateur avec les privilèges corrects.

Si vous donnez à l'utilisateur un niveau de privilège suffisant, ils seront en mesure d'accéder au registre, mais l'approche recommandée est de déplacer les paramètres du registre à la branche HKEY_CURRENT_USER du registre, puisque ce n'est pas verrouillé et est accessible par tous les utilisateurs.

+0

Juste pour clarifier, mon problème ici n'est pas d'accéder à la HKLM, mais lire un paramètre de fichier .ini situé sur le partage réseau. –

+0

Le compte d'utilisateur du service a-t-il accès au réseau? –

Questions connexes