Lecture du registre

Description

Cet exemple lit dans la base de registre les clés de Windows et d?Office et en retourne la valeur en des clés décodées. A ce jour ?

La lecture est correcte pour Windows 7 Version intégrale.
La lecture est correcte pour Office 2003 ? 2007 reste à tester pour Office 2010.

Vous pouvez modifier le programme HTA avec le Bloc-notes pour ajouter d?autres produits de Microsoft pour le faire évoluer merci de nous donner les modifications futures. Via Codes-Sources.

Source / Exemple :


<META CONTENT="MSHTML 5.00.3502.5390" NAME=GENERATOR>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML/HTA; CHARSET=WINDOWS-1252">
<META NAME="DESCRIPTION" CONTENT="Créé par gege45?">
<META NAME="DESCRIPTION" CONTENT="Dernière mise à jour: 07/09/2012">
<META NAME="DESCRIPTION" CONTENT="Le fichier est dans le dossier Images">

<HTML><HEAD>

<TITLE>Lecture du registre clés décodées</TITLE>

<!-- IL FAUT ABSOLUMENT METTRE LES ATTRIBUTS EN MAJUSCULES (EXEMPLE : <HTA:APPLICATION CAPTION="" > ET NON <HTA:APPLICATION caption="" >) ! -->
<!-- CES ATTRIBUT PERMETTENT DE DÉFINIR DANS QUELLE POSITION L'APPLICATION DEVRA S'OUVRIR (SOIT EN POSITION NORMALE, AGRANDIE OU RÉDUITE ETC. -->

<HTA:APPLICATION
	ID = "COPYRIGHTVERSION"
	APPLICATIONNAME	= "MICROSOFT" '# Utile pour le SingleInstance
	CAPTION	= "YES"               '# Barre de Titre
	BORDER = "DIALOG"             '# Style Bordure Thick, Dialog, None ou Thin
	BORDERSTYLE = "NORMAL"        '#
	CONTEXTMENU = "NO"            '# Clic Droit Autorisé Yes - No
	ICON = "IMAGES\CODYX.ICO"     '# "Images\Codyx.ico" est dans le dossier Images  
	INNERBORDER = "YES"           '# Yes - No
	MAXIMIZEBUTTON = "NO"         '# Autorise le bouton Agrandir
	MINIMIZEBUTTON = "YES"        '# Autorise le bouton Réduire
	NAVIGABLE = "YES"             '# Autorise les liens dans le HTA
	RESIZE = "NO"                 '#
	SCROLL = "YES"                '#
	SCROLLFLAT = "NO"             '#
	SELECTION = "NO"              '#
	SHOWINTASKBAR = "YES"         '# Apparait dans la Barre des Titres
	SINGLEINSTANCE = "YES"        '# Ouvrir le HTA autant de fois que nécessaires
	SYSMENU = "YES"               '#
	TITLEBAR = "NO"               '#
	VERSION = "1.01"              '#
	WINDOWSTATE = "NORMAL"/>

<!-- Infos ces commandes sont actuellement activées. -->
<!-- Début couleur du Bouton lavender et du Texte couleur gris > slategray -->
<STYLE TYPE=TEXT/CSS>
INPUT {
     BACKGROUND-COLOR:LAVENDER; COLOR: SLATEGRAY;
     FONT-FAMILY: TIMES NEW ROMAN, VERDANA, ARIAL, HELVETICA, SANS-SERIF;
     FONT-WEIGHT:BOLD; FONT-SIZE: 12PT; }

<!-- "Images\codyxwallpaper1.jpg" est dans le dossier images -->
BODY {
    BACKGROUND-IMAGE: URL("IMAGES\CODYXWALLPAPER1.JPG");
    BACKGROUND-COLOR:TRANSPARENT; COLOR:BLACK;
    FONT-FAMILY: TIMES NEW ROMAN, VERDANA, ARIAL, HELVETICA, SANS-SERIF;
    FONT-SIZE: 9PT; }
<!-- Début couleur des scroll infos ces commandes sont désactivées pour le moment.-->
<!--BODY {
    scrollbar-face-color: #dadaff; scrollbar-shadow-color: #000000;
    scrollbar-highlight-color: lavender; scrollbar-3dlight-color: #000000;
    scrollbar-darkshadow-color: #000000; scrollbar-track-color: lavender;
    scrollbar-arrow-color: #000000 }
<!-- Fin couleur des scroll -->		
</STYLE>

<!-- Infos ces commandes sont actuellement activées. -->
<!-- Le Hussard sur le toit de Jean-Claude Petit (écoute de 20 secondes) est dans le dossier images -->
<!-- N'oublier pas de remplacer "Images\Hussard.mp3" par le chemin où se trouve votre fichier mp3. -->
<BODY>
<EMBED SRC="IMAGES\HUSSARD.MP3" ALIGN="BASELINE" BORDER="0" WIDTH="1" HEIGHT="2" AUTOSTART="TRUE">
</BODY>

</HEAD>
<SCRIPT LANGUAGE="VBSCRIPT">
'*
'* Récupérer les clés des produits de microsoft
'* de l'enregistrement en décodant DigitalProductId
'* Déclarations des constantes et valeurs
'*
CONST HKEY_LOCAL_MACHINE = &H80000002
CONST DPID = "DigitalProductId"
'*
'* Déclarations des Variables.
'*
PUBLIC VERIFCLES: PUBLIC TABLEAUX: PUBLIC STRHTML
'*
'* Ici PROG (5, 1) on crée le tableau des programmes
'* Où l'on veut rechercher la clé en claire.
'*
PUBLIC PROG(5, 1) '*<= C?est ici qu?on modifie lorsque l?on ajoute de nouveau programme
'*
VERIFCLES = ARRAY(): TABLEAUX = ARRAY()
'*
PROG(0, 0) = "MICROSOFT WINDOWS"
PROG(0, 1) = "SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION"
PROG(2, 0) = "Microsoft Office XP"
PROG(2, 1) = "SOFTWARE\MICROSOFT\OFFICE\10.0\REGISTRATION"
PROG(1, 0) = "Microsoft Office 2003"
PROG(1, 1) = "SOFTWARE\MICROSOFT\OFFICE\11.0\REGISTRATION"
PROG(3, 0) = "Microsoft Office 2007"
PROG(3, 1) = "SOFTWARE\MICROSOFT\OFFICE\12.0\REGISTRATION"
PROG(4, 0) = "Microsoft Office 2010"
PROG(4, 1) = "SOFTWARE\MICROSOFT\OFFICE\14.0\REGISTRATION"
'*
'* Chez moi à cet emplacement se trouve une clé de produit de Microsoft Windows 7 ultimate.
'* Ainsi que son Numéro de Série
'*
PROG(5, 0) = "MICROSOFT WINDOWS"
PROG(5, 1) = "SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\DEFAULTPRODUCTKEY"
'*
'* La procédure WINDOW_ONLOAD (nom imposé) sert à effectuer des
'* initialisations éventuelles (taille de l'ensemble de la fenêtre)
'*
SUB WINDOW_ONLOAD()
VERSIONSPAN.INNERHTML = COPYRIGHTVERSION.VERSION
STRCOMPUTER = "."
SET OBJWMISERVICE = GETOBJECT("WINMGMTS:\\" & STRCOMPUTER & "\ROOT\CIMV2")
SET COLITEMS = OBJWMISERVICE.EXECQUERY("SELECT * FROM WIN32_DESKTOPMONITOR")
'*
FOR EACH OBJITEM IN COLITEMS
INTHORIZONTAL = OBJITEM.SCREENWIDTH
INTVERTICAL = OBJITEM.SCREENHEIGHT
NEXT
INTLEFT = (INTHORIZONTAL - 505) / 2
INTTOP = (INTVERTICAL - 640) / 2
WINDOW.RESIZETO 505, 640
WINDOW.MOVETO INTLEFT, INTTOP
'*
'* Ouvrir la clé d'enregistrement des données binaires dans un tableau
'*
STRCOMPUTER = "."
SET REGISTRE = GETOBJECT("WINMGMTS:{IMPERSONATIONLEVEL=IMPERSONATE}!\\" & STRCOMPUTER & "\ROOT\DEFAULT:STDREGPROV")
'*
FOR X = LBOUND(PROG, 1) TO UBOUND(PROG, 1)
REGISTRE.GETBINARYVALUE HKEY_LOCAL_MACHINE, PROG(X, 1), DPID, EXTDPIDBYTES
IF NOT ISNULL(EXTDPIDBYTES) THEN
CALL DECODECLES(EXTDPIDBYTES, PROG(X, 0))
ELSE
REGISTRE.ENUMKEY HKEY_LOCAL_MACHINE, PROG(X, 1), EXTGUIDKEYS
IF NOT ISNULL(EXTGUIDKEYS) THEN
'*
FOR EACH GUIDKEY IN EXTGUIDKEYS
REGISTRE.GETBINARYVALUE HKEY_LOCAL_MACHINE, PROG(X, 1) & "\" & GUIDKEY, DPID, EXTDPIDBYTES
IF NOT ISNULL(EXTDPIDBYTES) THEN
'*
'* Appel de la fonction (decodecles)
'*
CALL DECODECLES(EXTDPIDBYTES, PROG(X, 0))
END IF
NEXT
END IF: END IF
NEXT
IF ISNULL(VERIFCLES) THEN
DATAAREA.INNERHTML = "Aucune Clé Trouvée"
ELSE
DATAAREA.INNERHTML = STRHTML
END IF
END SUB
'*
'* Retourne la clé du produit
'*
FUNCTION DECODECLES(TABLEAUX, IDPRODUITS)
DIM EXTDPID
EXTDPID = ARRAY()
'*
'* Extraire les octets 52-66 du DPID = "DigitalProductId"
'*
FOR I = 52 TO 66
REDIM PRESERVE EXTDPID(UBOUND(EXTDPID) + 1)
EXTDPID(UBOUND(EXTDPID)) = TABLEAUX(I)
NEXT
'*
'* Créez un tableau retenir les caractères valables pour une clé de produit de Microsoft
'* Clé séquence de 25 lettres et chiffres
'* Déclarations des variables.
'*
DIM CARACTERES
'*
CARACTERES = ARRAY("B", "C", "D", "F", "G", "H", "J", "K", "M", "P", "Q", "R", "T", "V", "W", "X", "Y", "2", "3", "4", "6", "7", "8", "9")
'*
'* Décodez les caractères EXTDPID de base 24 des données binaires codées
'*
FOR I = 24 TO 0 STEP -1
K = 0
FOR J = 14 TO 0 STEP -1
K = K * 256 XOR EXTDPID(J)
EXTDPID(J) = INT(K / 24)
K = K MOD 24
NEXT
IDKEYPRODUITS = CARACTERES(K) & IDKEYPRODUITS
IF I MOD 5 = 0 AND I <> 0 THEN IDKEYPRODUITS = "-" & IDKEYPRODUITS
NEXT
REDIM PRESERVE VERIFCLES(UBOUND(VERIFCLES) + 1)
VERIFCLES(UBOUND(VERIFCLES)) = IDKEYPRODUITS
'*
IF IDPRODUITS = "MICROSOFT WINDOWS" THEN
STRCOMPUTER = "."
SET OBJWMISERVICE = GETOBJECT("WINMGMTS:" & "{IMPERSONATIONLEVEL=IMPERSONATE}!\\" & STRCOMPUTER & "\ROOT\CIMV2")
SET COLOPERATINGSYSTEMS = OBJWMISERVICE.EXECQUERY("SELECT * FROM WIN32_OPERATINGSYSTEM")
'*
FOR EACH OBJOPERATINGSYSTEM IN COLOPERATINGSYSTEMS
OS_WINDOWS = OBJOPERATINGSYSTEM.CAPTION
'*
'* "Numéro de Série : " & OBJOPERATINGSYSTEM.SERIALNUMBER
'*
NEXT
'*
<!--     Infos ces commandes sont actuellement activées. -->
<!--       <hr> crée une ligne de séparation horizontale -->
<!--       titres : présentation de texte.
<!--       <h1> à <h6>: taille du texte
<!--       il existe des balises spécialement conçues pour réaliser des titres : ce sont les tags <hn> où n
<!--       est un nombre entre 1 et 6. ce sont des commandes d'en-têtes ; elles sont utilisées pour différencier
<!--       les niveaux d'un document comme les sections d'un article de journal. -->
'*
STRHTML = STRHTML & "<H3>" & OS_WINDOWS & "</H3>" & "<H4>" & IDKEYPRODUITS & "</H4><HR><BR>"
ELSE
STRHTML = STRHTML & "<H3>" & IDPRODUITS & "</H3>" & "<H4>" & IDKEYPRODUITS & "</H4><HR><BR>"
END IF
END FUNCTION
'*
'* De plus, si vous cherchez à imiter de véritables programmes Windows,
'* le code couleur Hexadécimal #EBE9ED se rapproche fortement de la
'* couleur utilisée pour leur fond, pensez à l'utiliser !
'*
'* COULEUR HEADER ' darkred ' yellow ' olive' black ' red ' orange ' brown ' green ' cyan ' lavender ' gainsboro
'* COULEUR HEADER ' blue ' darkblue ' indigo ' violet ' white ' black ' maroon ' #dadaff ' slategray < Gris
'*
</SCRIPT>

<!-- INFOS CES COMMANDES SONT ACTUELLEMENT ACTIVÉES. -->
<BODY>
<!-- ÉCRITURE DE L?ENTÊTE -->
<DIV ID="HEADER" STYLE="COLOR:BLUE;
HEIGHT:50PX; TEXT-ALIGN:CENTER; FONT-FAMILY:TIMES NEW ROMAN;
FILTER:PROGID:DXIMAGETRANSFORM.MICROSOFT.GRADIENT(GRADIENTTYPE=0, STARTCOLORSTR='WHITE', ENDCOLORSTR='#DADAFF')">
<BR><H2>La lecture du registre est terminée ?</H2></DIV><HR>
<DIV STYLE="COLOR:DARKBLUE;FONT-FAMILY:TIMES NEW ROMAN;FONT-SIZE: 11PT;">

<!-- ÉCRITURE MISE À JOUR -->
<DIV STYLE="TEXT-ALIGN:LEFT;FONT-SIZE:1EM;FONT-STYLE:ITALIC;FONT-WEIGHT:BOLD;FONT-SIZE:1EM;COLOR:#888888;">
Version <SPAN ID=VERSIONSPAN>" "</SPAN> Dernière mise à jour &copy Le 08/09/2012
</DIV>
<SPAN ID="DATAAREA"></SPAN>

<!-- Infos le caractère &nbsp est un espace et doit toujours être en minuscule  -->
<!--       <hr>     crée une ligne de séparation horizontale -->
<!--       <br>     <br> : passage à la ligne suivante -->
<!--       <em>     le texte est généralement mis en italique -->
<!--       <strong> le texte est généralement mis en gras -->
<!--       <center> : pour entrer le contenu -->

<BR>
<!-- INFOS CES COMMANDES SONT ACTUELLEMENT ACTIVÉES. -->
<!-- DEBUT DU SCRIPT IMPRIMER -->
<DIV ID="PRINT" STYLE="TEXT-ALIGN:CENTER;"><INPUT TYPE="BUTTON" VALUE=".. Sélectionner l?Imprimante .." TITLE=".. Clique ce bouton pour Imprimer .." ONCLICK="WINDOW.PRINT()";></DIV>
<!-- FIN DU SCRIPT IMPRIMER -->

<BR><BR>
<!-- INFOS CES COMMANDES SONT ACTUELLEMENT ACTIVÉES. -->
<DIV STYLE="COLOR:GREEN;">
<DIV ALIGN="CENTER"</DIV>
<CENTER>
<A><EM><DIV STYLE="MARGIN-TOP:1EM;FONT-WEIGHT:BOLD;"> Copyright &copy 2012 Un petit clin d??il à Codes-Sources </CENTER></DIV></EM></A>
<!-- FIN DU SCRIPT DE LECTURE DU REGISTRE CLÉS DÉCODÉES. -->
</BODY></HTML>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.