Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lire apartir de la base de registre

4 réponses
Avatar
Bakelli
Bonjours;
J'ai fait une petite application avec Delphi (base de données Microsoft
Access)
Mon application enregistre le chemin de la base de données et le nom de
l'utilisateur dans la base de registre (la clé racine
HKEY_CURRENT_USER)
Maintenant je cherche à récupérer ces informations a partir de
Microsoft Excel comment faire svp
Merci d'avance




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

4 réponses

Avatar
JLuc
Bakelli avait soumis l'idée :
Bonjours;
J'ai fait une petite application avec Delphi (base de données Microsoft
Access)
Mon application enregistre le chemin de la base de données et le nom de
l'utilisateur dans la base de registre (la clé racine HKEY_CURRENT_USER)
Maintenant je cherche à récupérer ces informations a partir de Microsoft
Excel comment faire svp
Merci d'avance


Pour une appli que j'ai faite et que j'utilise :

Sub Essai_config_sauve()
' Variant devant contenir un tableau à deux dimensions renvoyé par la
fonction GetSettings
Dim MySettings As Variant
' Place des paramètres dans la base de registres.
SaveSetting "FichesSuiveuses", "Startup", "PathAppli",
ThisWorkbook.path & ""
SaveSetting "FichesSuiveuses", "Startup", "Printer",
Application.ActivePrinter
SaveSetting "FichesSuiveuses", "Startup", "Path", "D:Fichiers"
SaveSetting "FichesSuiveuses", "Startup", "Coef", 0.8
End Sub

Sub Essai_config_prendre()
Dim MySettings As Variant, intSettings As Integer

MySettings = GetAllSettings(appname:="FichesSuiveuses",
section:="Startup")
If Not IsEmpty(MySettings) Then
For intSettings = LBound(MySettings, 1) To UBound(MySettings, 1)
Range(MySettings(intSettings, 0)).Value =
MySettings(intSettings, 1)
Next intSettings
End If
End Sub

Sub Essai_config_supprime()
DeleteSetting "FichesSuiveuses", "Startup"

End Sub

--
JLuc

Avatar
Clément Marcotte
Bonjour,

Pour rechercher, une clef précise à un endroit précis, il faut passer par
l'API.

il doit y avoir un/des exemples VB par là:

www.allapi.net

http://vbnet.mvps.org


"Bakelli" a écrit dans le message de news:
e1n%
Bonjours;
J'ai fait une petite application avec Delphi (base de données Microsoft
Access)
Mon application enregistre le chemin de la base de données et le nom de
l'utilisateur dans la base de registre (la clé racine HKEY_CURRENT_USER)
Maintenant je cherche à récupérer ces informations a partir de Microsoft
Excel comment faire svp
Merci d'avance




--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




Avatar
Clément Marcotte
Bonjour,

L'inconvénient (encore que cela dépende du point de vue) de savesetting et
getsetting est qu'ils sont limités à un endroit précis du registre, avec
l'avantage d'une sécurité accrue sur l'utilisation "directe" de l'API.


"JLuc" a écrit dans le message de news:

Bakelli avait soumis l'idée :
Bonjours;
J'ai fait une petite application avec Delphi (base de données Microsoft
Access)
Mon application enregistre le chemin de la base de données et le nom de
l'utilisateur dans la base de registre (la clé racine HKEY_CURRENT_USER)
Maintenant je cherche à récupérer ces informations a partir de Microsoft
Excel comment faire svp
Merci d'avance


Pour une appli que j'ai faite et que j'utilise :

Sub Essai_config_sauve()
' Variant devant contenir un tableau à deux dimensions renvoyé par la
fonction GetSettings
Dim MySettings As Variant
' Place des paramètres dans la base de registres.
SaveSetting "FichesSuiveuses", "Startup", "PathAppli", ThisWorkbook.path &
""
SaveSetting "FichesSuiveuses", "Startup", "Printer",
Application.ActivePrinter
SaveSetting "FichesSuiveuses", "Startup", "Path", "D:Fichiers"
SaveSetting "FichesSuiveuses", "Startup", "Coef", 0.8
End Sub

Sub Essai_config_prendre()
Dim MySettings As Variant, intSettings As Integer

MySettings = GetAllSettings(appname:="FichesSuiveuses",
section:="Startup")
If Not IsEmpty(MySettings) Then
For intSettings = LBound(MySettings, 1) To UBound(MySettings, 1)
Range(MySettings(intSettings, 0)).Value = MySettings(intSettings,
1)
Next intSettings
End If
End Sub

Sub Essai_config_supprime()
DeleteSetting "FichesSuiveuses", "Startup"

End Sub

--
JLuc





Avatar
Bakelli
merci beaucoup à tous
jai trouvé exactement ceque je cherche dans le site www.allapi.net
voila ceque jai fait :
Const REG_SZ = 1 ' Unicode nul terminated string
Const HKEY_CURRENT_USER = &H80000001
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As
Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias
"RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult
As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String,
ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As
Long) As Long
Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As
String) As String
Dim lResult As Long, lValueType As Long, strBuf As String,
lDataBufSize As Long
'retrieve nformation about the key
lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal
0, lDataBufSize)
If lResult = 0 Then
If lValueType = REG_SZ Then
'Create a buffer
strBuf = String(lDataBufSize, Chr$(0))
'retrieve the key's content
lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal
strBuf, lDataBufSize)
If lResult = 0 Then
'Remove the unnecessary chr$(0)'s
RegQueryStringValue = Left$(strBuf, InStr(1, strBuf,
Chr$(0)) - 1)
End If
ElseIf lValueType = REG_BINARY Then
Dim strData As Integer
'retrieve the key's value
lResult = RegQueryValueEx(hKey, strValueName, 0, 0,
strData, lDataBufSize)
If lResult = 0 Then
RegQueryStringValue = strData
End If
End If
End If
End Function
Function GetString(hKey As Long, strPath As String, strValue As String)
Dim Ret
'Open the key
RegOpenKey hKey, strPath, Ret
'Get the key's content
GetString = RegQueryStringValue(Ret, strValue)
'Close the key
RegCloseKey Ret
End Function
Private Sub CommandButton2_Click()
Dim KeyName As String
KeyName = "SoftwareGestionAtelier"
Ret = GetString(HKEY_CURRENT_USER, KeyName, "LastDir")
If Ret = "" Then MsgBox "No value found !", vbExclamation +
vbOKOnly, Title: Exit Sub

UserForm1.TextBox1.Text = Ret
UserForm1.Show
'MsgBox "The value is " + Ret, vbOKOnly + vbInformation, Title
End Sub


--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net