Page 1 sur 1

Un petit code histoire de ce faire la main

Publié : jeu. 18/juin/2009 9:44
par jbernard13
bonjour
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

Publié : jeu. 18/juin/2009 10:01
par TazNormand
Bon, tout d'abord, il y a une erreur 1ère ligne, il manque le ; devant "******* MyXpKey", passons...

évites de mettre du PureColor à tout bout de champs, tout le monde n'a pas installé cette lib, Et puis, évites aussi le fond de fenêtre noir, et écritures jaunes, prends des couleurs plus chatoyantes, genre pastel (fond bleu ciel, écriture noire ou bleu foncé)

Les progressbar c'est bien quand le programme fait quelque chose de long, ça montre l'avancement, dans ton code, elle sert à rien, juste à attendre 3 secondes avant l'affichage.

Sincèrement JBernard13, je ne veux pas avoir l'air méchant, mais tu te disperses je trouves : tu nous "ponds" des codes de visualiseur d'images inachevés, de copieur de répertoires simpliste et maintenant de visualiseur de CD Key XP.

A moins que tu ne conçoives un soft à la WinXP Manager/TweakXP/TweakUI en secret ? :o

J'ai la critique facile ce matin, désolé, mais tout comme Venom te l'as fait remarquer pour ton "copieur de répertoire", tu peux faire mieux !!!

Publié : jeu. 18/juin/2009 10:13
par jbernard13
cher Taz , j'aime programmer , je montre que je crée pour faire la main ..

Publié : jeu. 18/juin/2009 10:45
par TazNormand
Non, tu ne crées pas, tu reprends des codes ce n'est pas pareil !!!

Chacun de tes topics reprend un code de quelqu'un !!! On ne peut pas tout savoir, moi même je reprends aussi certains codes, mais retaper "à la main" un code de quelqu'un ne veut pas dire créer !!!

Publié : jeu. 18/juin/2009 10:49
par jbernard13
j'ai repris ce code afin de mettre une fenetre et une bar de progression.