je suis parti d'un code de Dobro qui permet d'afficher la clé de Xp , histoire de me faire la main .....( j'ai pas fait copie coller de la procedure , je l'ai retaper à la main histoire de comprendre comment elle marche)
Code : Tout sélectionner
;******* MyXpKey ********
; écris par Jbernard( à partir d'une procedure de Dobro) ********
;**** Constantes ******
Enumeration
#fenetre_main
#String_0
#Bouton_afficher
#Bar
EndEnumeration
Declare.s GetXPCDKey()
;**** Procedure pour trouver la clé *****
Procedure.s GetXPCDKey()
Protected Dim DigitalProductId.b(164)
Protected hKey.l, i.l, j.l, n.l, result.s, nByte.l = 164
If RegOpenKey_ ( #HKEY_LOCAL_MACHINE , "SOFTWARE\MICROSOFT\Windows NT\CurrentVersion" , @hKey) = #ERROR_SUCCESS
If RegQueryValueEx_ (hKey, "DigitalProductId" , 0, "REG_BINARY" , @DigitalProductId(), @nByte) = #ERROR_SUCCESS
For i = 24 To 0 Step -1
n = 0
For j = 14 To 0 Step -1
n = ( n << 8 ) ! ( DigitalProductId(52 + j) & 255 )
DigitalProductId(52 + j) = n / 24
n % 24
Next
result = Mid ( "BCDFGHJKMPQRTVWXY2346789" , n + 1, 1) + result
If i And Not i % 5
result = "-" + result
EndIf
Next
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn result
EndProcedure
;**** Création de la fenetre et des gadgets *****
If OpenWindow(#fenetre_main,0,0,310,80,"My Key Xp",#PB_Window_SystemMenu|#PB_Window_MaximizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
SetWindowColor(#fenetre_main,RGB(0,0,0))
StringGadget(#String_0,10,10,200,20,"",#PB_String_ReadOnly)
SetGadgetColor(#String_0,#PB_Gadget_BackColor,RGB(0,0,0))
SetGadgetColor(#String_0,#PB_Gadget_FrontColor,RGB($FF,$FF,$0))
ButtonGadget(#Bouton_afficher,220,10,80,20,"Afficher")
PureCOLOR_SetButtonColor(#Bouton_afficher,RGB($FF,$FF,$0),RGB(0,0,0))
EndIf
;**** Boucle du programme
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Bouton_afficher:GetXPCDKey()
ProgressBarGadget(#Bar, 10, 50, 290, 20, 0, 100)
SetGadgetColor(#Bar, #PB_Gadget_BackColor, $000000)
For k=0 To 100
SetGadgetState(#Bar, k)
Delay(5)
Next
Txt.s=GetXPCDKey()
SetGadgetText(#String_0,Txt.s)
EndSelect
Case #PB_Event_CloseWindow
Fermer= #True
EndSelect
Until Fermer
End