#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
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