Bonjour a tous, Voici un code Visual Basic Scripte pour récupérer la Clé de Windows. J'essaie de le traduire en windev. Le code VBS: Code (Text): Public Function sGetXPCDKey() Dim bDigitalProductID Dim bProductKey() Dim bKeyChars(24) Dim ilByte Dim nCur Dim sCDKey Dim ilKeyByte Dim ilBit ReDim Preserve bProductKey(14) Set objShell = CreateObject("WScript.Shell") bDigitalProductID = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductID") Set objShell = Nothing For ilByte = 52 To 66 bProductKey(ilByte - 52) = bDigitalProductID(ilByte) Next 'Possible characters in the CD Key: bKeyChars(0) = Asc("B") bKeyChars(1) = Asc("C") bKeyChars(2) = Asc("D") bKeyChars(3) = Asc("F") bKeyChars(4) = Asc("G") bKeyChars(5) = Asc("H") bKeyChars(6) = Asc("J") bKeyChars(7) = Asc("K") bKeyChars(8) = Asc("M") bKeyChars(9) = Asc("P") bKeyChars(10) = Asc("Q") bKeyChars(11) = Asc("R") bKeyChars(12) = Asc("T") bKeyChars(13) = Asc("V") bKeyChars(14) = Asc("W") bKeyChars(15) = Asc("X") bKeyChars(16) = Asc("Y") bKeyChars(17) = Asc("2") bKeyChars(18) = Asc("3") bKeyChars(19) = Asc("4") bKeyChars(20) = Asc("6") bKeyChars(21) = Asc("7") bKeyChars(22) = Asc("8") bKeyChars(23) = Asc("9") For ilByte = 24 To 0 Step -1 nCur = 0 For ilKeyByte = 14 To 0 Step -1 'Step through each byte in the Product Key nCur = nCur * 256 Xor bProductKey(ilKeyByte) bProductKey(ilKeyByte) = Int(nCur / 24) nCur = nCur Mod 24 Next sCDKey = Chr(bKeyChars(nCur)) & sCDKey If ilByte Mod 5 = 0 And ilByte <> 0 Then sCDKey = "-" & sCDKey Next sGetXPCDKey = sCDKey End Function Voici le code windev (faux pour l'instant) Code (Windev): ////windows sGetXPCDKey est une chaîne bDigitalProductID est une chaîne bProductKey est un tableau de chaînes bKeyChars est un tableau de chaînes = [Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("B"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("C"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("D"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("F"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("G"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("H"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("J"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("K"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("M"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("P"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Q"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("R"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("T"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("V"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("W"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("X"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Y"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("2"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("3"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("4"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("6"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("7"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("8"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("9")] ilByte est un entier nCur est un entier sCDKey est une chaîne ilKeyByte est un entier nIlBit est un entier bDigitalProductID = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\","DigitalProductID") POUR ilByte = 52 À 66 Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(bProductKey,bDigitalProductID[ilByte]) FIN POUR ilByte = 24 À 0 PAS -1 nCur = 1 POUR ilKeyByte = 14 À 1 PAS -1 //'Step through each byte in the Product Key nCur = nCur * 256 OR bProductKey[ilKeyByte] bProductKey[ilKeyByte] = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(nCur / 24) nCur = nCur modulo 24 FIN sCDKey += Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(bKeyChars[nCur]) & sCDKey SI ilByte modulo 5 = 0 ET ilByte <> 0 ALORS sCDKey += "-" & sCDKey FIN sGetXPCDKey = sCDKey SAI_SansNom1 = sGetXPCDKey Merci d'avance de votre aide
Salut popoy, J’ai fait quelques corrections, mais je n’ai pas pu garder "RegistreLit" à cause de mon W10 64 bits : Code (Windev): sGetXPCDKey est une chaîne bProductKey est un tableau d'entiers bKeyChars est un tableau d'entiers = [Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("B"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("C"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("D"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("F"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("G"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("H"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("J"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("K"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("M"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("P"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Q"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("R"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("T"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("V"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("W"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("X"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("Y"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("2"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("3"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("4"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("6"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("7"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("8"),Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("9")] ilByte est un entier nCur est un entier sCDKey est une chaîne ilKeyByte est un entier HKEY_LOCAL_MACHINE est un entier = 0x80000002 KEY_QUERY_VALUE est un entier = 0x1 KEY_WOW64_64KEY est un entier = 0x0100 bufBuffer est un Buffer sur 2048 nRetour est un entier phkResult est un entier système lpcbData est un entier système lpcbData = 2048 nRetour = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("advapi32.DLL", "RegOpenKeyExA", HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &phkResult) nRetour = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!("advapi32.DLL", "RegQueryValueExA", phkResult, "DigitalProductId", 0, 0, &bufBuffer, &lpcbData) POUR ilByte = 52 À 66 Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(bProductKey, Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(bufBuffer, ilByte, 1)) FIN POUR ilByte = 24 À 0 PAS -1 nCur = 0 POUR ilKeyByte = 14 À 0 PAS -1 //'Step through each byte in the Product Key nCur = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(nCur * 256, bProductKey[ilKeyByte + 1]) bProductKey[ilKeyByte + 1] = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(nCur / 24) nCur = nCur modulo 24 FIN sCDKey = Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!(bKeyChars[nCur + 1]) + sCDKey SI ilByte modulo 5 = 0 ET ilByte <> 0 ALORS sCDKey = "-" + sCDKey FIN sGetXPCDKey = sCDKey SAI_SansNom1 = sGetXPCDKey A+.
Merci Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , d'avoir pris le temps de corriger mes bêtises. le fait d'utiliser les API Windows ne me dérange pas tant qu'une solution est apporté. Sur mon Windows 10 64 mon registrelit fonctionne. Bien que le code fonctionne il y a un depassement d'affectation sur cette ligne : HKEY_LOCAL_MACHINE est un entier = 0x80000002
Je n’ai aucun dépassement (ou leak), il s’affiche où chez toi et quelle version utilises-tu ? Pour corriger, il faut utiliser un entier sur 8 octets : HKEY_LOCAL_MACHINE est un entier sur 8 octets = 0x80000002 PS : Mon "RegistreLit" pointe sur "WOW6432Node" pour cette adresse. A+.
Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , Merci pour entier sur 8 octets. j'ai eu aussi des ennuis avec SysEnvironnement selon que l'on exécute en mode 32 ou 64 il ne renvoie pas les mêmes informations. Il est bon de savoir que RegistreLit a aussi des soucis selon le mode. Parfois il est préférable d'utiliser Monétaire ou Numérique a la place de Entiers.
salut, je viens de tester le code de Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! en changeant HKEY_LOCAL_MACHINE est un entier sur 8 octets = 0x80000002 (sinon avertissement sans plantage) sur WD24 Windows 10 x64 ça fonctionne parfaitement, mais j'ai un avertissement sur la ligne: nRetour = API("advapi32.DLL", "RegOpenKeyExA", HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &phkResult) dépassement de capacité (je retouve plus les tags de code)
Salut Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! , cela signifie que nretour doit aussi être en entier 8 octets en mode 64 bits. Une autre solution est de mettre hkey et nretour en entier système car entier système s'adapte selon que l'on est en mode 32 ou 64. En fait l'API ne sert que si tu compile en 32 et que ton OS est 64.