REcuperation d'une valeur dans la base de registre

  • Initiateur de la discussion Initiateur de la discussion Creepy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Creepy

Guest
Bonsoir à tous,

Je fais un petit fichier LOG pour savoir qui ouvre mon fichier excel et quand !

J'essaie de recuperer dand ma base de registre la valeur d'une clef (le nom de l'ordinateur) pour pouvoir qui c'est loggé !

Ma macro ne plante pas mais je n'ai pas la valeur de la clef, j'ai un blanc

Comment Faire ?? J'ai pourtant bien entrée le nom de l'appli, le chemin et le nom de la clef de la B de Registre !!

Merci d'avance

Bonne nuit

Creepy

------------------- CODE ----------------------------

Dim lngHFile As Long
Dim sMessatge, sAppName, sSection, sKey as String
lngHFile = FreeFile
sAppName = "Windows"
sSection = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName"
sKey = "ComputeurName"
sMessage = GetSetting(sAppName, sSection, sKey)
Open "C:\myLog.txt" For Append Shared As #lngHFile
Write #lngHFile, sMessage, Date, Time
Close #lngHFile
 
Il existe un fonction peut etre plus simple pour acceder au ComputerName:

Function ReturnComputerName() As String
Dim rString As String * 255, sLen As Long, tString As String
tString = ""
On Error Resume Next
sLen = GetComputerName(rString, 255)
sLen = InStr(1, rString, Chr(0))
If sLen > 0 Then
tString = Left(rString, sLen - 1)
Else
tString = rString
End If
On Error GoTo 0
ReturnComputerName = UCase(Trim(tString))
End Function
 
Bonjour Creepy, bonjour Dan, bonjour à Tous

La fonction GetComputerName est une fonction API et il faut donc la déclarer avant de l'utiliser

Private Const MAX_COMPUTERNAME_LENGTH As Long = 31
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Private Sub CptName()
Dim dwLen As Long
Dim strString As String
'Create a buffer
dwLen = MAX_COMPUTERNAME_LENGTH + 1
strString = String(dwLen, "X")
'Get the computer name
GetComputerName strString, dwLen
'get only the actual data
strString = Left(strString, dwLen)
'Show the computer name
MsgBox strString
End Sub

Bonne Prog

JHocquevelt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour