1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| function VersionWinRegistre(): string;
var
Registre: TRegistry;
strVersionWindows: string;
BoolWindows10: boolean;
Bool64bit: boolean;
i1, i2: integer;
s1, s2: string;
message: string;
begin
// On detecte si Windows10 ou antérieur à Windows10
BoolWindows10 := IsWindows10OrGreater;
Bool64bit := IsWin64;
strVersionWindows := '';
Registre := TRegistry.Create; //Crée un objet TRegistry
Registre.RootKey := HKEY_LOCAL_MACHINE; //Définit la clé principale
Registre.OpenKeyReadOnly(CleInfosWindows);
try
strVersionWindows :=
'Les informations sont issues de la lecture des valeurs de la clé : ';
//memo1.Lines.Add(strVersionWindows);
message := strVersionWindows + Newline;
strVersionWindows := CleInfosWindows;
//memo1.Lines.Add(strVersionWindows);
//memo1.Lines.Add('');
message := message + strVersionWindows + Newline;
strVersionWindows := 'Os : ' + Registre.ReadString('ProductName');
strVersionWindows := strVersionWindows +
' (service(s) pack non recherché(s))';
//memo1.Lines.Add(strVersionWindows);
message := message + strVersionWindows + Newline;
// Si Windows 10 major et minor version ne sont pas dans la clé
// 'CurrentVersion' mais CurrentMajorVersionNumber et CurrentMinorVersionNumber
if BoolWindows10 then
begin
i1 := Registre.ReadInteger('CurrentMajorVersionNumber');
i2 := Registre.ReadInteger('CurrentMinorVersionNumber');
strVersionWindows := 'Major version : ' + intTostr(i1) +
' Minor Version : ' + intTostr(i2);
//memo1.Lines.Add(strVersionWindows);
message := message + strVersionWindows + Newline;
end
else
begin
strVersionWindows := 'Major et minor version : ' +
Registre.ReadString('CurrentVersion');
//memo1.Lines.Add(strVersionWindows);
message := message + strVersionWindows + Newline;
end;
strVersionWindows := 'Build : ' + Registre.ReadString('CurrentBuild');
//memo1.Lines.Add(strVersionWindows);
//memo1.Lines.Add('');
message := message + strVersionWindows + Newline;
// Nota :
//Pour le build sous XP sp3 la clé « Current build » donne un résultat erroné
// ( mais cest indiqué dans la clé !) cest « BuildLab »
// qui donne la bonne valeur
strVersionWindows :=
'(Programme testé uniquement sous XP 32, 8.1 64 et 10 64)';
//memo1.Lines.Add(strVersionWindows);
message := message + strVersionWindows + Newline;
Result := message;
except
showmessage('Erreur certaines informations peuvent etre erronées: ');
end;
Registre.CloseKey; //Ferme la clé
Registre.Free; //Détruit l'objet
end; |
Partager