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.Win32Tcle.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).ToStringII. 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()
NextII-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"
NextII-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()
NextIII. 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 TryIII-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 fichierIII-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



