I. Récupérer des infos à partir du Registre▲
I-A. Récupérer le nom du système d'exploitation▲
Imports
Microsoft.Win32
Dim
Reg As
RegistryKey
Reg =
Registry.LocalMachine.OpenSubKey
(
"SOFTWARE"
, True
).OpenSubKey
(
"Microsoft"
, True
).OpenSubKey
(
"Windows NT"
, True
)_
.OpenSubKey
(
"CurrentVersion"
, True
)
Textbox1.Text
=
Reg.GetValue
(
"ProductName"
).ToString
Reg.Close
(
)
I-B. Récupérer le nom du processeur▲
Imports
Microsoft.Win32
Dim
Reg As
RegistryKey
Reg =
Registry.LocalMachine.OpenSubKey
(
"HARDWARE"
, True
).OpenSubKey
(
"DESCRIPTION"
, True
).OpenSubKey
(
"System"
, True
) _
.OpenSubKey
(
"CentralProcessor"
, True
).OpenSubKey
(
"0"
, True
)
Textbox1.Text
=
Reg.GetValue
(
"ProcessorNameString"
)
Reg.Close
(
)
I-C. Récupérer le nom de la carte▲
Imports
Microsoft.Win32
'récupère le chemin de la première clé pour lire le nom de la carte vidéo
Dim
Reg As
RegistryKey
Dim
chaine As
String
Reg =
Registry.LocalMachine.OpenSubKey
(
"HARDWARE"
, True
).OpenSubKey
(
"DEVICEMAP"
, True
).OpenSubKey
(
"VIDEO"
, True
)
chaine =
Reg.GetValue
(
"\device\video0"
)
Reg.Close
(
)
'///découpage des clé et sous clé
'On commence par compter combien de clé et de sous clé dans la chaîne
Dim
tabcle
(
) As
String
Dim
i, cpt As
Integer
i =
0
Dim
car As
String
=
"\"
For
i =
1
To
Len
(
chaine)
If
Mid
(
chaine, i, 1
) =
car Then
cpt =
cpt +
1
End
If
Next
'redimension du tableau des clé
ReDim
tabcle
(
cpt)
'mise en mémoire des clés
Dim
pos, j As
Integer
pos =
InStr
(
chaine, "\"
, CompareMethod.Binary
)
Do
While
pos <>
0
If
pos <>
1
Then
'si le premier caractère est "\" on ne le prend pas
j =
j +
1
tabcle
(
j) =
Mid
(
chaine, 1
, pos -
1
)
End
If
chaine =
Mid
(
chaine, pos +
1
)
pos =
InStr
(
chaine, "\"
, CompareMethod.Binary
)
Loop
'la derniere cle
tabcle
(
j +
1
) =
chaine
'Lecture du tableau des clés & sous clés
Dim
reg2 As
RegistryKey
'concatène les clés et sous clés (on pourrait faire beaucoup mieux)
reg2 =
Registry.LocalMachine.OpenSubKey
(
UCase
(
tabcle
(
3
)), True
).OpenSubKey
(
tabcle
(
4
), True
).OpenSubKey
(
tabcle
(
5
), True
) _
.OpenSubKey
(
tabcle
(
6
), True
).OpenSubKey
(
tabcle
(
7
), True
).OpenSubKey
(
tabcle
(
8
), True
)
'récupère la valeur
textbox1.Text
=
reg2.GetValue
(
"Device Description"
)
I-D. Récupérer la liste des logiciels installés▲
Ajouter sur une form une zone de liste nommée ListBox1 et un bouton.
Dans le code du bouton , ajouter le code ci dessous.
Imports
Microsoft.win32
'------recup les log installés------'
Dim
RegK As
RegistryKey
RegK =
Registry.LocalMachine.OpenSubKey
(
"SOFTWARE"
, True
).OpenSubKey
(
"Microsoft"
, True
)._
OpenSubKey
(
"Windows"
, True
).OpenSubKey
(
"CurrentVersion"
, True
).OpenSubKey
(
"Uninstall"
, True
)
Dim
Tabsscle
(
RegK.SubKeyCount
) As
String
Tabsscle =
RegK.GetSubKeyNames
'------Lecture du tableau des clé (tabsscle) defini plus haut------'
Dim
j As
Integer
ListBox1.Items.Clear
(
) 'vide la zone de liste
For
j =
0
To
UBound
(
Tabsscle) 'parcour du tableau de l'element 0 jusqu'a la fin
'lecure de la clé J contenu dans le tableau tabsscle()
Dim
regSK As
RegistryKey
regSK =
RegK.OpenSubKey
(
Tabsscle
(
j))
Dim
TabValeur
(
regSK.ValueCount
) As
String
'----Lecture des valeurs de la sous clé-----'
'si il y a des valeur dans la clé en cours
If
regSK.ValueCount
<>
0
Then
'on les recuperes
TabValeur =
regSK.GetValueNames
Dim
i As
Integer
'on parcours le tableau des valeurs
For
i =
0
To
UBound
(
TabValeur)
'si notre valeur = displayName alors
If
TabValeur
(
i) =
"DisplayName"
Then
'on l'ajoute a la liste
ListBox1.Items.Add
(
regSK.GetValue
(
TabValeur
(
i)))
End
If
Next
i
End
If
'ferme le registre souscle
regSK.Close
(
)
Next
j
'ferme le registre cle
RegK.Close
(
)
I-E. Récupérer les informations de valeurs d'internet Explorer (IE)▲
Créer un nouveau projet avec une form vierge.
Sur cette form ajouter les contrôles suivants :
- Une zone de text nommée : Tcle (c'est la clé a lire)
- Une zone de list nommée : Lvaleur (la liste des valeurs retourné par la clé)
- Une zone de text nommée: Tvaleur (Donnée de la valeur sélectionnée dans la liste)
- Un bouton
Imports
Microsoft.Win32
Tcle.Text
=
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer"
Dim
Reg As
RegistryKey
Reg =
Registry.LocalMachine.OpenSubKey
(
"SOFTWARE"
, True
).OpenSubKey
(
"Microsoft"
, True
)_
.OpenSubKey
(
"Internet Explorer"
, True
)
'tableau de toute les valeurs contenues dans la cle
Dim
Tabvaleur
(
Reg.ValueCount
) As
String
Tabvaleur =
Reg.GetValueNames
'charge la liste des valeur a partir du tableau memoire
Dim
j As
Integer
Lvaleur.Items.Clear
(
)
For
j =
0
To
UBound
(
Tabvaleur)
Lvaleur.Items.Add
(
Tabvaleur
(
j))
Next
j
'ferme la clé
Reg.Close
(
)
Dim
itemSelect As
Integer
Dim
ValEnCours As
String
Dim
Reg As
RegistryKey
'recupere l'index de la valeur sélectionnée
itemSelect =
Lvaleur.SelectedIndex
'recupere le nom de la valeur
ValEnCours =
Lvaleur.Items.Item
(
itemSelect)
'ouvre la clé du Registre
Reg =
Registry.LocalMachine.OpenSubKey
(
"SOFTWARE"
, True
).OpenSubKey
(
"Microsoft"
, True
)_
.OpenSubKey
(
"Internet Explorer"
, True
)
'obtient la valeur demandée
Tvaleur.Text
=
Reg.GetValue
(
ValEnCours).ToString
II. WMI▲
II-A. Récupérer les infos sur le processeur ▲
Imports
System.Management
Dim
sys As
New
ManagementObjectSearcher
(
"Select * from Win32_Processor"
)
Dim
infoProcesseur As
ManagementObject
For
Each
infoProcesseur In
sys.Get
(
)
Textbox1.Text
=
"Description : "
&
infoProcesseur
(
"Description"
).ToString
(
) &
vbCrLf
&
_
"Nom du Processeur : "
&
infoProcesseur
(
"Name"
).ToString
(
) &
vbCrLf
&
"Vitesse réelle : "
&
_
infoProcesseur
(
"CurrentClockSpeed"
).ToString
(
) &
vbCrLf
&
"Taille du Cache : "
&
_
infoProcesseur
(
"L2CacheSize"
).ToString
(
) &
vbCrLf
&
"Type de socket : "
&
_
infoProcesseur
(
"SocketDesignation"
).ToString
(
) &
vbCrLf
&
"Constructeur Processeur: "
&
_
infoProcesseur
(
"Manufacturer"
).ToString
(
)
Next
II-B. Récupérer la mémoire physique libre▲
Imports
System.Management
'creation d'une instance de la classe ManagementObjectSearcher
Dim
Sys As
New
ManagementObjectSearcher
(
"Select * from Win32_ComputerSystem"
)
Dim
info As
ManagementObject
For
Each
info In
Sys.Get
(
)
'Récupération des information sur la memoire
Textbox1.Text
=
CInt
(
info3
(
"TotalPhysicalMemory"
).ToString
(
)) /
1024
&
"Ko"
Next
II-C. Récupérer la version de votre bios▲
Imports
System.Management
Dim
req As
New
SelectQuery
(
"Win32_bios"
)
Dim
sys As
New
ManagementObjectSearcher
(
req)
Dim
info As
ManagementObject
For
Each
info In
sys.Get
(
)
Textbox1.Text
=
"Bios version: "
&
info
(
"version"
).ToString
(
)
Next
III. Les fichiers texte ▲
III-A. Créer un nouveau fichier .txt et écrire dedans▲
Imports
System.IO
Dim
chemin As
String
chemin =
"fichier.txt"
'pour que le fichier soit créer a la racine du programme, sinon metre le chemin complet
Dim
FsiEcrire As
System.IO.StreamWriter
Dim
chaine As
String
Chaine=
"ma chaine a ecrire"
Try
'ecriture du fichier
FsiEcrire =
New
System.IO.StreamWriter
(
chemin)
FsiEcrire.Write
(
chaine)
Catch
ex As
Exception
'message si erreur
MsgBox
(
ex.Message
)
Finally
'dans tous les cas on ferme le fichier
If
Not
FsiEcrire Is
Nothing
Then
FsiEcrire.Close
(
)
End
Try
III-B. Lire un fichier .txt ligne à ligne▲
Imports
System.IO
'lecture du flux
Dim
Monflux As
Stream
Monflux =
File.OpenRead
(
chemindufichier.txt
)
'lecture ligne à ligne
Dim
Maligne As
StreamReader =
New
StreamReader
(
Monflux, System.Text.Encoding.ASCII
)
Maligne.BaseStream.Seek
(
0
, SeekOrigin.Begin
)
'.peek défini le caractère suivant, si =-1 alors c'est qu'il n'y a plus de caractère
'la fin du fichier est donc atteinte
While
Maligne.Peek
(
) >
-1
Dim
rep As
String
=
Maligne.Peek
Textbox1.Text
=
Textbox1.Text
+
Maligne.ReadLine
(
) +
vbNewLine
End
While
Maligne.Close
(
) 'on n'oublie pas de fermer le fichier
III-C. Lire un fichier .txt en un seul flux▲
'creation de l'objet fichier pour lire le flux
Dim
FichierAlire As
StreamReader
'Lecture du fichier
Try
FichierAlire =
New
System.IO.StreamReader
(
chemindufichier.txt
)
TResFichier.Text
=
FichierAlire.ReadToEnd
(
)
Catch
ex As
Exception
'message si erreur
MsgBox
(
ex.Message
)
Finally
If
Not
FichierAlire Is
Nothing
Then
FichierAlire.Close
(
)
End
Try