Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Visual Basic 2008 "System.UnauthorizedAccessException"

2 réponses
Avatar
JJK94
Bonjour,

Suite à mon post précedent, dans mon application("myprog") j'ai besoin de
lancer à un autre programme("exprog") qui devra prendre des données dans une
"directory" définit par ("myprog") . En recherchant dans le registre de
windows des informations de configuration concernant "exprog" , j'ai trouvé
2 sous-clés pertinentes, l'une
"HKEY_CURRENT_USER/software/...../exprog/setting/directory" contient un
"string" correspond au répertoire par défaut utiliser par "exprog" . Quand
je change manuellement cette valeur avec "regedit" , je constate
effectivement ce changement quand je lance "exprog".
Je voudrais réaliser la même chose par programmation . j'arrive à la
sous-clé , mais quand j'essaie de la modifier par "setvalue" , je déclenche
une exception "System.UnauthorizedAccessException" .
Pouvez-vous m'aider , (apparement par defaut , l'accès aux sous-clés de
HKEY_CURRENT_USER est en lecture seule) .

Pour lancer "exprog" , j'ai besoin de retrouver le répertoire où est
installer "exprog.exe" pour le lancer par Shell
de la même manière que précédement, j'ai trouvé une sous-clé
"HKEY_LOCAL_MACHINE/software/....../Application/exprog/installdir" contenant
cette information.

Pouvez-vous me confirmer que ce sont les bonnes méthodes.
(c'est la première fois que je fais ce genre de manip .)

Merci d'avance

JJK94

2 réponses

Avatar
Jérémy Jeanson
Bonjour JJK94,

Au vu de ton message d'erreur, tu semble avoir un souci de droits
d'accès au registre.

Ne serrais tu pas par hazards sous Vista? si c'est bien le cas il
faudrait que tu dépleche l'UAC au lancement de ton application afin
qu'elle puisse avoir les même droits que toi quand tu lance regedit et
que l'UAC est déclenchée.

Pour faire ça en Vb .net c'est très facile, il suffit d'ouvir la fenètre
propriété de ton projet. Dans le première onglet se trouve les option
pour déclencher l'UAC ;)
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
JJK94
Bonjour,

<!-- Options du manifeste de contr"le de compte d'utilisateur

Si vous souhaitez modifier le niveau du contr"le de compte d'utilisateur
Windows, remplacez le noeud requestedExecutionLevel par l'une des
propositions suivantesÿ:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

Si vous souhaitez utiliser la virtualisation de fichiers et du Registre pour
la compatibilit, descendante, supprimez le noeud requestedExecutionLevel.

-->

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

contenu de app.manifest

je suis sur windows XP pro , l'application devra tourner sur XP ou Vista

que fais-je ?

JJK


"Jérémy Jeanson" a écrit dans le message de news:

Bonjour JJK94,

Au vu de ton message d'erreur, tu semble avoir un souci de droits d'accès
au registre.

Ne serrais tu pas par hazards sous Vista? si c'est bien le cas il faudrait
que tu dépleche l'UAC au lancement de ton application afin qu'elle puisse
avoir les même droits que toi quand tu lance regedit et que l'UAC est
déclenchée.

Pour faire ça en Vb .net c'est très facile, il suffit d'ouvir la fenètre
propriété de ton projet. Dans le première onglet se trouve les option pour
déclencher l'UAC ;)
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr