begin process at 2012 02 11 11:50:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > INFORMATIONS DISQUE ET SYSTEME

INFORMATIONS DISQUE ET SYSTEME


 Information sur la source

Note :
7 / 10 - par 2 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Classé sous :Informations, Disque, Système, Processeur, Registre Niveau :Débutant Date de création :07/01/2008 Vu / téléchargé :5 848 / 728

Auteur : HAFTARIFOUAD

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture EXEMPLE UTILISATION DBGRID
Source avec Zip Source avec une capture IMAGE DANS UN TDBGRID
Source avec Zip Source avec une capture MESSAGEDLG PERSONNALISÉ
Source avec Zip Source avec une capture HINT PAR CELLULE DANS UN TDBGRID
Source avec Zip Source avec une capture DEVELOPERBIBLIO

 Sources de la même categorie

Source avec Zip LECTURE DE LA MEMOIRE D'UN AUTRE PROCESSUS par Mokost
Source avec Zip Source avec une capture LIBÉRER LA TAILLE MAXIMALE D'UNE FENÊTRE PAR SUBCLASSING par rt15
Source avec Zip Source avec une capture OBSERVATEUR DE PROCESSUS ACTIFS; VPROCESS 1,0 par Neftali
UN SELECTDIRECTORY QUI SE PLACE AU BON ENDROIT par ThWilliam
Source avec une capture VOTRE PROGRAMME DE MAIL COMME CLIENT MAIL PAR DÉFAUT SOUS WI... par MAURICIO

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LOCKDISK (AUTORISER UN CD/DVD SUR VOTRE PC) par diglas
Source avec Zip Source avec une capture DESKTOPICONFLYING par cantador
Source avec Zip Source avec une capture DISKINFO V1.0.0 par Christophe67
Source avec Zip Source avec une capture NETTOYEUR AUTOMATIQUE DE VOS DISQUES par diglas
Source avec Zip Source avec une capture SIMULATEUR DU L'ORDONNANCEUR SRT par offlake

Commentaires et avis

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.

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

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.


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 ...

Commentaire de MAURICIO le 08/01/2008 10:21:53 administrateur CS

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+

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)

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.

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.

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.

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.

Commentaire de Nicolas___ le 14/01/2008 12:23:56

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

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.

Commentaire de MAURICIO le 14/01/2008 17:31:45 administrateur CS

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+

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 ;).

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...

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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,087 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales