banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 08 February 2011 14:50

NICOLLE.B
Participant occasionnel
Date d'inscription: 27 Jul 2006
Messages: 22

Fonction de lecture d'une clé de registre avec MapBasic

Bonjour à tous,

Qui aurait dans sa bibliothèque de fonction, un script qui permettrait de lire une clé de registre (1 argument de la fonction) et bien sur d'en retourner la valeur.

Merci

Hors ligne

 

#2 Thu 10 February 2011 16:24

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Fonction de lecture d'une clé de registre avec MapBasic

Bonjour
Explorez cette discussion... si l'anglais ne vous fait pas peur smile

Hors ligne

 

#3 Mon 14 February 2011 09:40

NICOLLE.B
Participant occasionnel
Date d'inscription: 27 Jul 2006
Messages: 22

Re: Fonction de lecture d'une clé de registre avec MapBasic

Bonjour,

Ci-dessous la réponse à ma question par une petite fonction toute simple permettant de lire une clé de registre quelconque:

-------------------------------------------------------------------------------
' Déclaration des constantes

Define REG_SZ                   1
Define REG_DWORD                   4
Define  ERROR_SUCCESS          0

Define HKEY_CLASSES_ROOT        -2147483648

Define HKEY_CURRENT_USER        -2147483647
Define HKEY_LOCAL_MACHINE       -2147483646
Define HKEY_USERS               -2147483645


' Déclaration des fonctions issues de la DLL advapi32.dll

Declare Function RegOpenKey Lib "advapi32.dll"
    Alias "RegOpenKeyA" (
    ByVal hKey As Integer,
    ByVal lpSubKey As String,
    phkResult As Integer)
    As Integer


Declare Function RegQueryValueEx Lib "advapi32.dll"
    Alias "RegQueryValueExA" (
    ByVal hKey As Integer,
    ByVal lpValueName As String,
    ByVal lpReserved As Integer,
    lpType As Integer,
    lpData As string,
    lpcbData As Integer)
    As Integer

Declare Function RegCloseKey Lib "advapi32.dll"
    (ByVal hKey As Integer)
    As Integer



'Déclarations des fonctions et procédures
'----------------------------------------

Declare Sub Main
Declare function LitCleRegistre(ByVal kKey as Integer, ByVal sKey as String, ByVal nKey as String) as string


Sub Main
Dim sKey, nKey as String

    ' Recherhce le nom de l'utilisateur en cours

    sKey = "Software\Microsoft\Windows\CurrentVersion\Explorer"
    nKey = "Logon User Name"

    note LitCleRegistre(HKEY_CURRENT_USER, sKey, nKey)


    ' Recherhce le nom réseau de la station

    sKey = "System\ControlSet001\Control\ComputerName\ActiveComputerName"
    nKey = "ComputerName"

    note LitCleRegistre(HKEY_LOCAL_MACHINE, sKey, nKey)

End Sub



'****************************************************************
Function LitCleRegistre( ByVal kKey as Integer,
                         ByVal sKey as String,
             ByVal nKey as String) as string

Dim lRetVal As integer
Dim sType, hKey, Ssize As integer
Dim sValue As String

    sType = REG_SZ
    Ssize = 1024

    lRetVal = RegOpenKey(kKey, SKey, hKey)

    If lRetVal <> ERROR_SUCCESS Then
        LitCleRegistre = ""
           Exit Function
    Else
           sValue =string$(ssize,chr$(32))

        lRetVal = RegQueryValueEx(hKey,nKey, 0, sType , sValue, Ssize )

        If lRetVal <> ERROR_SUCCESS Then
            LitCleRegistre = ""
            Exit Function
        Else
            LitCleRegistre = rtrim$(sValue)
       End If

       lRetVal = RegCloseKey(hKey)

    End If

End Function

Hors ligne

 

Pied de page des forums

Powered by FluxBB