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

VB.NET Discussion :

Export/Import clés de registre [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Par défaut Export/Import clés de registre
    Bonjour à tous les intervenants sur ce forum,

    Ma question : Comment sauvegarder (Et recharger ensuite) une des clés et ses sous-clés de la base de registre.
    Autre formulation : J'aimerai savoir utiliser RegSaveKey et les fonctions associées telles que RegLoadKey.
    Ceci avec Visual Studio 2010 et en VB.

    Bien entendu, je n'ai rien trouvé sur le Web ... Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,

    une petite recherche sur internet : https://www.google.be/search?sourcei...egistre+vb.net

    nous donnes pas mal de page dont celle de MSDN

    Cela n'est-il pas bon?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Par défaut
    Merci de votre réponse rapide. C'est toujours très agréable.
    Toutefois, les liens proposés ne répondent pas à la question de l'export de clés (Environ 300 valeurs) dans un fichier .reg ou autre que je pourrais recharger ensuite. J'ai vraiment beaucoup cherché sans résultat.
    Une solution serait de lire chaque clé et de construire un fichier .txt et de faire ensuite quand j'en ai besoin la manipulation inverse mais ce n'est pas très élégant. Utiliser RegSaveKey me semblait préférable ...
    Votre avis ? Bonne soirée.

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Il est vrais que si une fonction existe autant l'utiliser.
    J'ai trouvé sur un site cette réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Imports System.Runtime.InteropServices
     
    Public Class Form1
     
        Private Const KEY_ALL_ACCESS As Integer = &HF003F
     
        Private ReadOnly HKEY_LOCAL_MACHINE As New IntPtr(-2147483646)
     
        <DllImport("Advapi32")> _
        Private Shared Function RegOpenKeyEx(ByVal hKey As IntPtr, _
                                             ByVal lpSubKey As String, _
                                             ByVal ulOptions As Integer, _
                                             ByVal samDesired As Integer, _
                                             ByRef phkResult As IntPtr) As Long
        End Function
     
        <DllImport("Advapi32")> _
        Private Shared Function RegSaveKey(ByVal hKey As IntPtr, _
                                           ByVal lpFile As String, _
                                           ByVal lpSecurityAttributes As Integer) As Long
        End Function
     
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Try
                Dim key As IntPtr
     
                RegOpenKeyEx(HKEY_LOCAL_MACHINE, _
                             "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", _
                             Nothing, _
                             KEY_ALL_ACCESS, _
                             key)
                RegSaveKey(key, _
                           IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, _
                                           "Run.reg"), _
                           Nothing)
            Catch ex As Exception
                MessageBox.Show(ex.ToString())
            End Try
        End Sub
     
    End Class
    Mais ils disent qu'il n'est pas fonctionnel, il faudrait analyser pourquoi, c'est déjà un bon point de départ...

    [EDIT] Je viens de tester, et il ne génère pas d'erreur, le fichier est créé mais il est vide il faut investiguer cela...

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 28
    Par défaut
    L'essai du code proposé ne fonctionne pas sur mon ordi même en changeant quelques éléments (HKLM par HKCU ou le chemin de la clé par exemple).
    Il ne crée pas de fichier (Contrairement à vous) mais ne provoque pas d'erreur non plus (Ouf).
    La discussion sur le site qui propose ce code s'est arrêtée sans conclusion ...
    Pourtant ce code montre bien la mise en oeuvre des 2 fonctions qui m'intéressent (RegsaveKey et RegOpenKey). Le problème réside peut-être dans la déclaration de constante KEY-ALL_ACCESS ou la valeur de IntPtr ?
    Bonne journée.

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Petite remarque, pour accéder au registre, le programme doit être démarrer avec les droits administrateur. Dans mon cas, j'avais lancé VS en tant qu'administrateur pour qu'il crée le fichier, j'avais omis ce détail important

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Questions sur les clés de registre
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 30/04/2005, 19h12
  2. Comment exporter / importer une table postgres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/03/2005, 18h22
  3. [Export-import] Comment faire ?
    Par phil_ma dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 06/02/2005, 18h15
  4. Export / Imports de Bases
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/07/2003, 14h18
  5. Export/import des logins et pwd
    Par Colargole dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 17/07/2003, 16h07

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