IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème DeleteSubKeyTree c#


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut Problème DeleteSubKeyTree c#
    Bonjour à tous,

    Je débute en c#, et ma leçon du jour, supprimer une clé dans le registre d'un ordinateur distant, dans le domaine.

    J'arrive a lire une valeur, accéder a une clé, supprimer une valeur, mais pas supprimer la clé proprement dite.

    J'ai lu pas mal de choses et de problèmes similaire, mais je n'arrive pas à résoudre le miens. voici le code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var reg = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, systemName);
    var key = reg.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall",true);
    if (key != null)
    {
       key.DeleteSubKeyTree("{A02F8B50-15F2-61F45-V5C3-00156C245987}");
    }
    var key2 = reg.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\App Paths\PROJ.exe", true);
    if (key2 != null)
    {
       key2.DeleteValue("path");
    }
    A noter que lorsque je mets en commentaire de la ligne 2 à la ligne 6, le reste de l'opération se déroule bien et la valeur "path" est bien supprimée...

    Merci d'avance pour votre aide...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Quelle est l'erreur obtenue ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut
    En fait, ce code est dans une boucle, qui fait autre chose également, et lorsqu'il arrive a la ligne ci dessous, il met fin à l'exécution de la boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    key.DeleteSubKeyTree("{A02F8B50-15F2-61F45-V5C3-00156C245987}");
    Si je met cette ligne en commentaire, il exécute bien le reste...

    Mais je n'ai pas de message d'erreur...Ou je ne sais pas où regarder de par mon manque de connaissances...

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par nicorad Voir le message
    Mais je n'ai pas de message d'erreur...Ou je ne sais pas où regarder de par mon manque de connaissances...
    Tu exécutes dans le debugger ? Normalement le debugger devrait s'arrêter sur l'exception, sinon regarde ici pour le configurer correctement

    Sinon, tu peux mettre un try/catch autour de l'instruction et afficher l'exception dans le catch :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try
    {
        key.DeleteSubKeyTree("{A02F8B50-15F2-61F45-V5C3-00156C245987}");
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
    (si c'est une application Windows, tu peux remplacer Console.WriteLine par MessageBox.Show)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut
    En fait je faisais "générer", puis je lançais depuis le dossier...

    Il me met comme erreur:

    System.IO.IOException: Numéro de procédure hors de l'intervalle admis.

    à Microsoft.Win32.RegestryKey.Win32Error(Int32 errorCode, String str)
    à Microsoft.Win32.RegestryKey.DeleteSubKeyTree(String subkey, Boolean throwOnMissingSubKey)
    à Microsoft.Win32.RegestryKey.DeleteSubKeyTree(String subkey)
    à SuppressionCiger.Form1.bwAsync_DoWork(Object sender, DoWorkEventArgs e) dans C:\Users .... Chemin de mon projet \Form1.cs:ligne 152

    Voila...

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Bizarre, j'ai jamais vu cette erreur... et chez moi ça fonctionne bien.

    Tu es sur quel OS ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut
    Windows 7 Pro

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    OK, c'est peut-être un problème d'UAC alors... Ca marche si tu exécutes en temps qu'admin ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut
    Je suis déjà en tant qu'Admin dans le domaine...

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut
    Un grand merci a toi, tu as résolu mon problème...

    En ouvrant une session avec le compte Administrateur, cela fonctionne.

    Dans le domaine, mon compte est sensé être aussi un compte admin, reste à déterminer ce qui cloche au niveau du serveur alors, mais c'est autre chose...

    Un tout grand merci à toi...

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut
    Bon après quelques test.

    Le problème ne vient pas du compte, mais de Windows 7.

    En effet, si j'exécute le script via ma session ou la session admin sur un poste en XP, cela fonctionne. Au contraire de l'exécution sur 7, qui ne fonctionne aps que ce soit avec mon compte ou le compte admin...

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Bizarre, j'ai aussi testé sous Win7 et ça marche sans problème (à condition que j'ai les autorisations d'accès bien sûr)

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Par défaut
    Oui c'est bizarre... Sur mon pc "test" qui lui est en XP, ca fonctionne ac n'importe quel compte du groupe admin, mais pas sur mon PC en 7... Malgré la réinstallation de framework .Net 4 ...

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 15h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 12h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 22h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo