Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

INFORMATIONS DISQUE ET SYSTEME


Information sur la source

Description

Cliquez pour voir la capture en taille normale
Bonjour tt le monde ;-)

Ce petit programme nous permet d’obtenir:

Le nom du volume du disque ;
La longueur maximum des noms des fichiers ;
Le numéro de série de disque ;
Système de fichiers ;
Le système d’exploitation ;
La version du système ;
Le numéro de service ;
Référence du processeur ;

toutes questions ou critiques les bienvenues

Pour terminer vous souhaite bon courage et bonne programmation.
 

Source

  • unit InformationsDisques;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls, ExtCtrls,Registry;
  • type
  • TForm1 = class(TForm)
  • BOk: TButton;
  • PlRep: TPanel;
  • EditChemin: TEdit;
  • LabelChemin: TLabel;
  • BOpen: TButton;
  • Dialog: TOpenDialog;
  • PInfo: TPanel;
  • LongeurMaxiFi: TLabel;
  • LNumSerie: TLabel;
  • LSysFiles: TLabel;
  • LblMaxi: TLabel;
  • LblNumeroSerie: TLabel;
  • LblSysteme: TLabel;
  • LblVolume: TLabel;
  • LNomVolume: TLabel;
  • Panel1: TPanel;
  • Label3: TLabel;
  • LSysExp: TLabel;
  • LabelVersionMineur: TLabel;
  • Label4: TLabel;
  • LabelServicePack: TLabel;
  • LblServicePack: TLabel;
  • Label1: TLabel;
  • Panel2: TPanel;
  • LblProcesseur: TLabel;
  • LabelProcesseur: TLabel;
  • procedure BOkClick(Sender: TObject);
  • procedure FormCreate(Sender: TObject);
  • procedure BOpenClick(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Form1: TForm1;
  • chemin:string;
  • implementation
  • {$R *.dfm}
  • { Programme réalisé par HAFTARI Fouad, pour plus d'informations
  • n'hésitez pas de me contacter
  • haftari@hotmail.com }
  • procedure TForm1.BOkClick(Sender: TObject);
  • var
  • Repertoire:PChar;
  • NomVolume: array[0..255] of Char;
  • NumSerie:DWORD;
  • LongeurMaxNomFichier:DWORD;
  • TypeCase:DWORD;
  • FileSystem: array[0..255] of Char;
  • reg:TRegIniFile;
  • chemin,s1:string;
  • begin
  • Chemin:=Copy(EditChemin.Text,1,3); // Affecter à chemin les les trois premières lettres de EditChemin
  • Repertoire:=PChar(Chemin); // Répertoire:= Pchar(3 lettres (EditChemin))
  • // Si GetVolumeInformation n'est pa afficher un message d''érreure
  • if not GetVolumeInformation(Repertoire,NomVolume,SizeOf(NomVolume),@NumSerie,
  • LongeurMaxNomFichier,TypeCase, FileSystem,sizeOf(FileSystem))
  • then ShowMessage('Erreur');
  • // On effecte le Nom de volume est de type string à LNomVolume
  • LNomVolume.Caption:=String(NomVolume);
  • // On effecte la longeure maximum des fichiers est de type entier à LongeurMaxiFi
  • // On effecte le Nom de volume est de type string à LNomVolume
  • LongeurMaxiFi.Caption:=IntToStr(LongeurMaxNomFichier)+' Caractères';
  • // On effecte le numéro de série est de type entier à LNumSérie
  • LNumSerie.Caption:=IntToStr(NumSerie);
  • // On effecte le type de systèmes de fichier est de type string à LSysFiles
  • LSysFiles.Caption:=String(FileSystem);
  • // ====== Informations du processeur ==============
  • // n'oublie pas d'ajouter Registry aux Uses;
  • reg:=TRegIniFile.Create('');
  • with reg do begin
  • begin
  • RootKey:=HKEY_LOCAL_MACHINE;
  • chemin:='Hardware\Description\System\Centralprocessor\0';
  • s1:=ReadString(chemin,'Identifier','<Information non trouvé>');
  • end;
  • LabelProcesseur.Caption:=s1;
  • end;
  • reg.free;
  • {
  • informations du système d'éxploitation
  • Exemple téléchargé depuis le site
  • www.phields.com
  • source téléchargé le 29 Novembre 2007
  • *** un grand merci aux auteurs du site***
  • }
  • if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) then
  • begin
  • LSysExp.Caption:='Win 32 Windows';
  • case Win32MajorVersion of
  • 4:
  • begin
  • case Win32MinorVersion of
  • 0:
  • begin
  • LabelVersionMineur.Caption := 'Win95';
  • case Win32Platform of
  • 1: case Win32CSDVersion[1] of
  • 'A': LabelServicePack.Caption:='';
  • 'B','C': LabelServicePack.Caption:='OSR2';
  • end;
  • end;
  • end;
  • 10:
  • begin
  • LabelVersionMineur.Caption := 'Win98';
  • case Win32CSDVersion[1] of
  • 'A': LabelServicePack.Caption:='Microsoft Windows 98';
  • 'B': LabelServicePack.Caption:='SE';
  • end;
  • end;
  • 90: LabelVersionMineur.Caption := 'WinMe';
  • end;
  • end;
  • end;
  • end;
  • if (Win32Platform = VER_PLATFORM_WIN32_NT) then
  • begin
  • LSysExp.Caption:='Win 32 NT';
  • case Win32MajorVersion of
  • 4:
  • begin
  • case Win32MinorVersion of
  • 0: LabelVersionMineur.Caption := 'osWinNT4';
  • end;
  • end;
  • 5:
  • begin
  • case Win32MinorVersion of
  • 0: LabelVersionMineur.Caption := 'Win2000';
  • 1: LabelVersionMineur.Caption := 'WinXP';
  • 2: LabelVersionMineur.Caption := 'WinServer2003';
  • end;
  • LabelServicePack.Caption:=Win32CSDVersion;
  • end;
  • end;
  • end;
  • end;
  • procedure TForm1.FormCreate(Sender: TObject);
  • begin
  • Editchemin.text:=GetCurrentDir; // Obtenir le chemin de l'éxécutable et l'écrire dans EditChemin
  • end;
  • procedure TForm1.BOpenClick(Sender: TObject);
  • begin
  • // Condition si Dialog est exécuté on obtienderons le chemin du fichier choisi
  • if Dialog.Execute then EditChemin.Text:=Dialog.FileName;
  • end;
  • end.
unit InformationsDisques;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls,Registry;

type
  TForm1 = class(TForm)
    BOk: TButton;
    PlRep: TPanel;
    EditChemin: TEdit;
    LabelChemin: TLabel;
    BOpen: TButton;
    Dialog: TOpenDialog;
    PInfo: TPanel;
    LongeurMaxiFi: TLabel;
    LNumSerie: TLabel;
    LSysFiles: TLabel;
    LblMaxi: TLabel;
    LblNumeroSerie: TLabel;
    LblSysteme: TLabel;
    LblVolume: TLabel;
    LNomVolume: TLabel;
    Panel1: TPanel;
    Label3: TLabel;
    LSysExp: TLabel;
    LabelVersionMineur: TLabel;
    Label4: TLabel;
    LabelServicePack: TLabel;
    LblServicePack: TLabel;
    Label1: TLabel;
    Panel2: TPanel;
    LblProcesseur: TLabel;
    LabelProcesseur: TLabel;
    procedure BOkClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BOpenClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  chemin:string;
implementation

{$R *.dfm}
{ Programme réalisé par HAFTARI Fouad, pour plus d'informations
                n'hésitez pas de me contacter
                      haftari@hotmail.com                     }
             
procedure TForm1.BOkClick(Sender: TObject);
var
 Repertoire:PChar;
  NomVolume: array[0..255] of Char;
  NumSerie:DWORD;
  LongeurMaxNomFichier:DWORD;
  TypeCase:DWORD;
  FileSystem: array[0..255] of Char;
  reg:TRegIniFile;
  chemin,s1:string;
begin
  Chemin:=Copy(EditChemin.Text,1,3); // Affecter à chemin les les trois premières lettres de EditChemin

  Repertoire:=PChar(Chemin);         // Répertoire:= Pchar(3 lettres (EditChemin))

  // Si GetVolumeInformation n'est pa afficher un message d''érreure
  if not GetVolumeInformation(Repertoire,NomVolume,SizeOf(NomVolume),@NumSerie,
                 LongeurMaxNomFichier,TypeCase, FileSystem,sizeOf(FileSystem))
  then ShowMessage('Erreur');

  // On effecte le Nom de volume est de type string à LNomVolume
  LNomVolume.Caption:=String(NomVolume);
  // On effecte la longeure maximum des fichiers est de type entier à LongeurMaxiFi
  // On effecte le Nom de volume est de type string à LNomVolume
  LongeurMaxiFi.Caption:=IntToStr(LongeurMaxNomFichier)+' Caractères';
  // On effecte le numéro de série est de type entier à LNumSérie
  LNumSerie.Caption:=IntToStr(NumSerie);
  // On effecte le type de systèmes de fichier est de type string à LSysFiles
  LSysFiles.Caption:=String(FileSystem);

  // ====== Informations du processeur ==============
  // n'oublie pas d'ajouter Registry aux Uses;
  reg:=TRegIniFile.Create('');
  with reg do begin
  begin
  RootKey:=HKEY_LOCAL_MACHINE;
  chemin:='Hardware\Description\System\Centralprocessor\0';
  s1:=ReadString(chemin,'Identifier','<Information non trouvé>');
  end;
  LabelProcesseur.Caption:=s1;
  end;
  reg.free;


{
                informations du système d'éxploitation
                Exemple téléchargé depuis le site
                         www.phields.com
                source téléchargé le 29 Novembre 2007
              *** un grand merci aux auteurs du site***
}
  if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) then
  begin
    LSysExp.Caption:='Win 32 Windows';
    case Win32MajorVersion of
      4:
      begin
        case Win32MinorVersion of
          0:
          begin
            LabelVersionMineur.Caption := 'Win95';
            case Win32Platform of
              1: case Win32CSDVersion[1] of
                    'A':    LabelServicePack.Caption:='';
                    'B','C':    LabelServicePack.Caption:='OSR2';
                 end;
             end;       
          end;
          10:
          begin
            LabelVersionMineur.Caption := 'Win98';
            case Win32CSDVersion[1] of
              'A':    LabelServicePack.Caption:='Microsoft Windows 98';
              'B':    LabelServicePack.Caption:='SE';
            end;
          end;
          90: LabelVersionMineur.Caption := 'WinMe';
        end;
      end;
    end;
  end;
  if (Win32Platform = VER_PLATFORM_WIN32_NT) then
  begin
    LSysExp.Caption:='Win 32 NT';
    case Win32MajorVersion of
      4:
      begin
        case Win32MinorVersion of
          0: LabelVersionMineur.Caption := 'osWinNT4';
        end;
      end;
      5:
      begin
        case Win32MinorVersion of
          0: LabelVersionMineur.Caption := 'Win2000';
          1: LabelVersionMineur.Caption := 'WinXP';
          2: LabelVersionMineur.Caption := 'WinServer2003';
        end;
        LabelServicePack.Caption:=Win32CSDVersion;
      end;
    end;
  end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Editchemin.text:=GetCurrentDir;   // Obtenir le chemin de l'éxécutable et l'écrire dans EditChemin
end;

procedure TForm1.BOpenClick(Sender: TObject);
begin
// Condition si Dialog est exécuté on obtienderons le chemin du fichier choisi
if Dialog.Execute then EditChemin.Text:=Dialog.FileName;
end;

end.

Conclusion

Pour conclure : un grand salut à tous ceux qui savent ni lire ni écrire…

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Caribensila le 07/01/2008 15:28:17

« Pour conclure : un grand salut à tous ceux qui savent ni lire ni écrire. »

On leur dira.

signaler à un administrateur
Commentaire de Nicolas___ le 07/01/2008 16:04:00

Vu que tu sais lire je te le dis :
tes sources sont vraiment inutiles !

Ciao

signaler à un administrateur
Commentaire de f0xi le 07/01/2008 22:29:48 administrateur CS

// On effecte le numéro de série est de type entier à LNumSérie
LNumSerie.Caption:=IntToStr(NumSerie);


mais bien sur ...
le numero de serie d'un disque est toujours noté en Hexadecimal.


signaler à un administrateur
Commentaire de f0xi le 07/01/2008 22:31:03 administrateur CS

ah oui, "effecte" viens du verbe Affecter et donc s'écrit avec un A et non un E ==> on affecte ...

signaler à un administrateur
Commentaire de MAURICIO le 08/01/2008 10:21:53

Haaa, vous êtes dûr les gars!!!

je trouve que son français n' est pas si mauvais que ça, je dirai même que j' ai vu pire par certains membres qui refusent encore de se relire ...

En ce qui concerne l' intérêt de la source, c'est sûr que c' est du vu et revu mais bon, on a qu' une source par semaine de potable, donc, ça fait des révisions ou mieux: c' est du tout bon pour ceux qui ne savent utiliser le moteur de recherche de delphifr.com  !!!

A+

signaler à un administrateur
Commentaire de Loda le 08/01/2008 12:13:57 4/10

bon bon,

histoire d'être constructif, voici quelques conseilles:

les trucs genre "LabelVersionMineur.Caption := 'Win98';" : évite. Fait plutôt une function qui te retourne le string. Pourquoi?
# Si tu veux changer le Tlabel par un mémo ou changer le nom du TLabel?
# Comment vas-tu utiliser ce code dans un test?
# Comment vas-tu utiliser ce code dans un autre programme?
==> Les "calculs" devrait toujours être indépendant de l'affichage.


évite aussi de coder DANS les event des boutons. Faire une méthode que tu appel depuis l'event.


Amélioration possible:
- et les autres disques dur? (perso, j'ai 4-10 disques)


bon code,

Loda

PS: je trouve aussi moyen-moyen de lui reprocher son français. (par contre, c'est vrai que ce source n'apporte pas grand choses)

signaler à un administrateur
Commentaire de HAFTARIFOUAD le 13/01/2008 09:45:34

Bonjour Monsieur NICOLAS

je tiens à vous remercie en premier.
et je vous dirai une chose:
si c'est les sources qui sont inutiles c'est pas important...
-l'imagination est plus importante que le savoir- "Albert"

le plus important c'est le respect et la gentillesse.

bonne programmation et bonne chance.

signaler à un administrateur
Commentaire de matrix1 le 13/01/2008 18:30:57

Pour <B> FOUAD </B>:
Je voie que tu t'intéresse au system maintenant qui implique que ta fais bc de progrés, c bien, la prochain fois tu vas peut être attaqué le graphisme qui c ;).

Maintenant pour <B> Nicolas_le;)07/01/2008 </B>
tu ignore qu'il y a des gens qu'éssay par fois de participé,
et c trés important pour quel qu'un qui sent qu'il fais partie de ce monde parallèles de programmeur pas juste pour faire voir ses muscles, ce qui le cas pour bc de gens ici.
et j'aime bien si Nicolas_ peut rendre cette source plus utile en essayant de changé le N° de série d'une partition ;)!!

pq je dit une partition!!!!?, le Volume Serial Number est enregistré par l'OS sur le disque comme n'importe quelle autre donnée (sur le MBR; le Manufacturer Serial Number n'est pas sur le disque mais sur la carte électronique du disque dans une EPROM (et non une FlashROM Ni NvRom :p) et ne peut donc ni être effacé, ni être modifié.
En espagnole : on peut pas changé le N° d'un disque dure mais celui des partitions, ça change a chaque formatage et calculé d'apré l'heur et la date de formatage.
bon si t' est un newbie je te fil un tuyau :
on peut avec HexWorkshop qui permet d'ouvrir les disques  et peut etre les exe s :D

Tu vas le trouvé ton N/S :
de l'offset x0048 a x004B (4 octets) (NTFS)
de l'offset x0043 a x0046 (4 octets) (FAT32)

Disant que tu a trouvé ça:
A62B-221C

on enlève le tiret, on inverse les octets on obtient :
1C 22 2B A6 ( 00011100 00100010 00101011 10100110 )

Alors fai moi une source utile ya el BAZZE.

Une chose!, désolé de te dire ça Fouad mais "Albert" a tore il n y pas plus important que le savoir, toi et moi on le sais trés bien.

Bon courage à tous.

signaler à un administrateur
Commentaire de Caribensila le 13/01/2008 18:50:14

...Ce que voulait dire Albert Einstein c'est que le mental intuitif est un don sacré, et le savoir est un serviteur fidèle.
Et que nous vivons dans une société qui honore le serviteur et a oublié le don.

signaler à un administrateur
Commentaire de matrix1 le 14/01/2008 11:15:14

une société qui honore le serviteur et a oublié le don!!!
mmm! peut ete que cette societé manque un peut de don :D.
en tous cas Merci Mr Caribensila de cette explication.
mais savez vous que je dit moi:
"si on sais le savoir exacte, on sera tous au paradis".
c étrange hien!! :D, vous ne comprenez rien!!!
c pas grave vous serez un jour.
bon programmation a tous.

signaler à un administrateur
Commentaire de Nicolas___ le 14/01/2008 12:23:56

Hé ben ... bon paradis à vous deux alors , suis content tout plein xD

signaler à un administrateur
Commentaire de Caribensila le 14/01/2008 16:21:55

@MATRIX1
Einstein parlait de la société humaine, de civilisation, quoi; dont nous faisons tous partie, toi et moi.
Et ce que j'ai compris moi, c'est que Delphi est profondément laïque et qu'il n'apportera le paradis à personne :D

En d'autres termes, on peut connaître un langage de programmation dans ses moindres recoins, mais ce n'est pas ça qui nous fera découvrir un algo révolutionnaire ou un nouveau concept informatique génial. Ce n'est donc pas le savoir qui fait avancer l'Humanité, mais l'imagination.

signaler à un administrateur
Commentaire de MAURICIO le 14/01/2008 17:31:45

Haa que c' est beau Cari, lol
ça a le mérite de mettre les points sous les "i" avec le doigté et la finesse que l'on te connait!

Moi ce que je dit (quoi ? j' ai le droit non? lol), c' est qu' un jour mon savoir se perdra, mais une trace de celui-ci sur DelphiFr j' aurais laissé!
Vous ne comprenez pas? Vous saurez peut-être un jour...
A+

signaler à un administrateur
Commentaire de matrix1 le 16/01/2008 15:46:15

desolé de te dire Caribensila que l'homme peut faire des marviel avec le delphi, tien !! peut q'un jour je peut faire une application intelegente (DHM) Dialogue homme machine qui vas donc faire avancer l'humanité :D et je vais l'appelé  Einsteinquitors .
que dit tu de ça ;).

signaler à un administrateur
Commentaire de belateche le 24/01/2008 20:25:17

merci à vous tous,j'ai beaucoup appris de votre conversation,cela remonte le moral...de decouvrire qu'il faut etre philosophe pour apprendre delphi...

signaler à un administrateur
Commentaire de jackalunion le 22/06/2008 13:16:09 10/10

ha

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

base de registre [ par msuire ] J'aimerais lire et ecrire dans la base de registre du disque dur d'un pc(x) depuis ma propre machine; Le disque du second pc étant connecté sur le por Informations système sous Xp [ par cincap ] Bonjour à tous,Y a t'il quelqu'un qui connaitrai la commande en Delphi pour faire apparaître la boîte des informations système soit l'équivalent de la Rechercher des informations utiles dans le registre "regedit" [ par ninie33 ] bonjour à tous, je suis nouvelle sur ce forum, mais depuis quelques jours que je navigue dessus, j'y trouve des astuces intéressantes. Voilà mon probl détecter informations sur l'ordinateur [ par Maniaxman ] Bonjour,Je chercherais à obtenir des informations sur un ordinateur avec Delphi.J'ai trouvé un logiciel qui me donne les infos suivantes :Antivirus : Form qui ne veut rien entendre [ par cavalier2400 ] On voulant un mot de passe pour mon application, j'ai les fiches suivantes:     Application.Initialize;Application.ShowMainForm:= False;      Applicat je cherche des informations sur les AppBar? [ par lotfi213_b19 ] bonjour a tous, je cherche des informations sur les AppBar,ou bien Desktop Application Bars,j'ai pas trouvé de grande chose sur google,merci Charger un executable sans passez par le disque dur [ par niakfu ] Bonjours,Depuis quelque temps je cherche, mais mon résultat n'arrive pas à aboutir.Je cherche une source ou un tutoriel serais encore mieux, en França Informations sur les arrays [ par Bacterius ] Bonjour, juste avant de faire le labyrinthe, je voulais plutôt faire un petit jeu 2D, inspiré du jeu Dogfight (voir RockSolidArcade sur Google pour jo clé registre INNO SETUP [ par nilwak ] Bonjour à tous, J'ai créer un setup qui à la fin de l'installation lance un second setup. J'aimerais que ce second setup soit lancer en silence (j'y s


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,811 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.