Problême d'acces à la base de registre en .NET

cs_Tropic Messages postés 90 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 1 février 2011 - 31 juil. 2009 à 13:47
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 2 août 2009 à 10:24
Bonjour,

En utilisant
Microsoft.Win32.Registry
ou
Les APIs

Impossible de lire cette valeur à l'adresse
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\PNP0401\4&126B373&0\LogConf\BasicConfigVector"
la valeur "PNP0401\4&126B373&0" correspond au port LPT1
se sera différent à chaque poste

En fait, c'est pour récupérer l'adresse de LPT1

Voici un clone de Regedit (Très puissant)
http://www.planet-source-code.com/Upload_PSC/ftp/DOT_NET_Re1693171112004.zip

Et bien, même lui y va pas dans "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum"

Je pense que c'est une question de droit!!!

Alors qu'en VB6 IMPECCABLE.


merci de votre aide
Mais je débute en .net
mjm

10 réponses

cs_DeWaRs Messages postés 77 Date d'inscription vendredi 31 décembre 2004 Statut Membre Dernière intervention 6 septembre 2010 2
31 juil. 2009 à 14:20
A tu essayé avec un WshShell.RegRead ?
WdhShell n'est pas trop conseiller en .net mais bon, si ça fonctionne ...
0
cs_Tropic Messages postés 90 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 1 février 2011
31 juil. 2009 à 16:32
NON, je voudrais une solution .net
et savoir pourquoi je ne peux pas le lire

A default, je ferais une dll avec VB6
Merci
mjm
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 août 2009 à 00:04
Salut,

Ton programme dois être exécuter en mode administrateur (par une session admin ou exécuté en tant qu'administrateur sous vista si l'UAC est activé) Pour l'acquisition des droits auto, regarde dans le XML des paramètres UAC (propriétés du projet => Application => Afficher les paramètres UAC), défini la valeur level="requireAdministrator"

@+ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
cs_Tropic Messages postés 90 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 1 février 2011
1 août 2009 à 18:10
Salut Mayzz

Aucun effet!!!

Alors que lire la valeur
"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0401\4&126B373&0\Device Parameters\PortName"
me retourne bien LPT1
mais "\LogConf\BasicConfigVector"
me retourne Nothing

Et sous VB6, les bonnes valeurs.
mjm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Tropic Messages postés 90 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 1 février 2011
1 août 2009 à 18:24
Précision,
je suis sous XP et admin
Donc pas un problème de session

mjm
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 août 2009 à 19:31
Bizzard, ton OS est bien un 32bits ?

Sinon tu peux utiliser les API, les paramètres de sécurités sont configurables.

@+ Mayzz.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
cs_Tropic Messages postés 90 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 1 février 2011
1 août 2009 à 20:42
Que je fasse en c++, VB6
Api ou autres, pas de souci

MAIS en .NET

Microsoft.Win32.Registry
ou
Les APIs

IMPOSSIBLE

Mon OS est bien un 32bits

je pense aussi à un problème de sécurités.
mais débutant dans ce langage, je sais pas encore m'y prendre.

j'ai cherché plus d'une semaine sur le net avant de poser la question sur le forum.

Au début, je pensai à que c'était moi le souci,
mais en faisant faire le même teste à un ami
ce code en .net
http://www.planet-source-code.com/Upload_PSC/ftp/DOT_NET_Re1693171112004.zip

lui non plus ne pouvait pas y allez dans cette rubrique
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum"

Teste le et tu verras que toi non plus tu ne le peux pas.

On a ouvert regedit.exe et on a forcer les droits et on a pu le parcourir, mais tourjours pas possible de lire "\LogConf\BasicConfigVector"
alors que "\Device Parameters\PortName" a pu être lu.

Mais manipuler la base de registre, pas top.

En dernier recours, je ferais une dll avec VB6
mais je veux comprendre.

c'est specifique à .net aucun doute, car une source en C.net(VC8) sur http://www.codeproject.com/KB/applications/NtRegEdit.aspx?msg=2327614
me fais la même chose.


mjm
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
1 août 2009 à 22:08
Heu...

Donc si je résume, avec Les même API, en vb6 cela fonctionne et non en .Net ???



Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
cs_Tropic Messages postés 90 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 1 février 2011
2 août 2009 à 07:36
Exactement!

mjm
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
2 août 2009 à 10:24
Y a quand même quelque chose qui me turlupine... Qu tu veuille acceder au registre via API ou via Ms.win32 cela revient au même (pour ta clé), Cela vient de .Net ok.

Mais d'ou exactement ?

On aurait pu penser qu'il y a un bug dans Microsoft.Win32.Registry, mais ce n'est pas le cas, tu soulève un point intéressant !

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Rejoignez-nous