1. Dashboard
  2. Forum
    1. DeviantArt
    2. Twitch
    3. Facebook
    4. Instagram
    5. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Lexikon
  5. Galerie
    1. Alben
    2. Karte
  6. Filebase
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Lexikon-Eintrag
  • Marktplatz-Eintrag
  • Partner
  • Banner
  • Galerie
  • Dateien
  • Erweiterte Suche
  1. Generation-FX.eu - deine GFX Community
  2. Underground Forum
  3. Coding
  4. Delphi, Pascal
  5. Sources

sysinfo

  • Pallmall
  • 10. März 2009
  • Pallmall
    Schüler
    Punkte
    300
    Beiträge
    47
    • 10. März 2009
    • #1
    Code
    [COLOR=#0000af][B]unit[/B][/COLOR] Unit1; 
     
    [COLOR=#0000af][B]interface[/B][/COLOR] 
     
    [COLOR=#0000af][B]uses[/B][/COLOR] 
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
      Dialogs, StdCtrls, Gauges, Registry, ComCtrls, ExtCtrls; 
     
    [COLOR=#0000af][B]type[/B][/COLOR] 
      TForm1 [COLOR=#0000af]=[/COLOR] [COLOR=#0000af][B]class[/B][/COLOR](TForm) 
        ListBox1: TListBox; 
        Label1: TLabel; 
        Label2: TLabel; 
        Gauge1: TGauge; 
        Gauge2: TGauge; 
        Edit1: TEdit; 
        Edit2: TEdit; 
        Label3: TLabel; 
        Label4: TLabel; 
        Label5: TLabel; 
        Label6: TLabel; 
        Label7: TLabel; 
        Label8: TLabel; 
        Label9: TLabel; 
        Label10: TLabel; 
        Label11: TLabel; 
        Label12: TLabel; 
        Label13: TLabel; 
        Edit3: TEdit; 
        Edit4: TEdit; 
        Edit5: TEdit; 
        Edit6: TEdit; 
        Edit7: TEdit; 
        Edit8: TEdit; 
        Edit9: TEdit; 
        Edit10: TEdit; 
        Edit11: TEdit; 
        Edit12: TEdit; 
        Edit13: TEdit; 
        Timer1: TTimer; 
        Label14: TLabel; 
        Edit14: TEdit; 
        [COLOR=#0000af][B]procedure[/B][/COLOR] Timer1Timer(Sender: TObject); 
        [COLOR=#0000af][B]procedure[/B][/COLOR] FormCreate(Sender: TObject); 
      [COLOR=#0000af][B]private[/B][/COLOR] 
        [COLOR=#008000]{ Private-Deklarationen }[/COLOR] 
      [COLOR=#0000af][B]public[/B][/COLOR] 
        [COLOR=#008000]{ Public-Deklarationen }[/COLOR] 
      [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#0000af][B]var[/B][/COLOR] 
      Form1: TForm1; 
     
    [COLOR=#0000af][B]implementation[/B][/COLOR] 
     
    [COLOR=#008000]{$R *.dfm}[/COLOR] 
     
    [COLOR=#008000]//FUNKTIONEN[/COLOR] 
    [COLOR=#008000]//------------------------------------------------------------------------------[/COLOR] 
    [COLOR=#008000]//PROZESSORNAME[/COLOR] 
    [COLOR=#0000af][B]function[/B][/COLOR] GetProzessorName: [COLOR=#0000af][B]string[/B][/COLOR]; 
    [COLOR=#0000af][B]var[/B][/COLOR] reg: TRegistry; 
    [COLOR=#0000af][B]begin[/B][/COLOR] 
      result:[COLOR=#0000af]=[/COLOR]'[COLOR=#000080]Unbekannter Prozessor[/COLOR]'; 
      reg:=TRegistry.Create; 
      [COLOR=#0000af][B]try[/B][/COLOR] 
        reg.RootKey :[COLOR=#0000af]=[/COLOR] HKEY_LOCAL_MACHINE; 
        reg.OpenKey('[COLOR=#000080]Hardware\Description\System\CentralProcessor\0[/COLOR]', false); 
        result:=reg.ReadString('[COLOR=#000080]ProcessorNameString[/COLOR]'); 
      [COLOR=#0000af][B]finally[/B][/COLOR] 
        reg.free; 
      [COLOR=#0000af][B]end[/B][/COLOR]; 
    [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#008000]//DERZEITIGE PROZESSORAUSLASTUNG[/COLOR] 
    [COLOR=#0000af][B]function[/B][/COLOR] CalcCPUSpeed: Extended; 
    [COLOR=#0000af][B]const[/B][/COLOR] 
      DelayTime [COLOR=#0000af]=[/COLOR] 500; [COLOR=#008000]// measure time in ms[/COLOR] 
    [COLOR=#0000af][B]var[/B][/COLOR] 
      TimerHi, TimerLo: DWord; 
      PriorityClass, Priority: Integer; 
    [COLOR=#0000af][B]begin[/B][/COLOR] 
      [COLOR=#0000af][B]try[/B][/COLOR] 
        PriorityClass :[COLOR=#0000af]=[/COLOR] GetPriorityClass(GetCurrentProcess); 
        Priority :[COLOR=#0000af]=[/COLOR] GetThreadPriority(GetCurrentThread); 
     
        SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS); 
        SetThreadPriority(GetCurrentThread, 
                          THREAD_PRIORITY_TIME_CRITICAL); 
        [COLOR=#0000af][B]try[/B][/COLOR] 
          Sleep(10); 
          [COLOR=#0000af][B]asm[/B][/COLOR] 
            dw 310Fh [COLOR=#008000]// rdtsc[/COLOR] 
            mov TimerLo, eax 
            mov TimerHi, edx 
          [COLOR=#0000af][B]end[/B][/COLOR]; 
          Sleep(DelayTime); 
          [COLOR=#0000af][B]asm[/B][/COLOR] 
            dw 310Fh [COLOR=#008000]// rdtsc[/COLOR] 
            sub eax, TimerLo 
            sbb edx, TimerHi 
            mov TimerLo, eax 
            mov TimerHi, edx 
          [COLOR=#0000af][B]end[/B][/COLOR]; 
        [COLOR=#0000af][B]finally[/B][/COLOR] 
          SetThreadPriority(GetCurrentThread, Priority); 
          SetPriorityClass(GetCurrentProcess, PriorityClass); 
        [COLOR=#0000af][B]end[/B][/COLOR]; 
        Result :[COLOR=#0000af]=[/COLOR] TimerLo / (1000.0 * DelayTime); 
      [COLOR=#0000af][B]except[/B][/COLOR] 
        Result :[COLOR=#0000af]=[/COLOR] 0; 
      [COLOR=#0000af][B]end[/B][/COLOR]; 
    [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#008000]//LAUFWERKE ERMITTELN[/COLOR] 
    [COLOR=#0000af][B]procedure[/B][/COLOR] GetDrives([COLOR=#0000af][B]const[/B][/COLOR] AItems: TStrings); 
    [COLOR=#0000af][B]const[/B][/COLOR] 
      DriveTypeTexts: [COLOR=#0000af][B]array[/B][/COLOR][DRIVE_UNKNOWN..DRIVE_RAMDISK] [COLOR=#0000af][B]of[/B][/COLOR] [COLOR=#0000af][B]string[/B][/COLOR] [COLOR=#0000af]=[/COLOR] 
       ('[COLOR=#000080]Unbekannt[/COLOR]', '[COLOR=#000080]Kein Wurzelverzeichnis[/COLOR]', '[COLOR=#000080]Diskette[/COLOR]', '[COLOR=#000080]Festplatte[/COLOR]', '[COLOR=#000080]Netzlaufwerk[/COLOR]', '[COLOR=#000080]CDROM[/COLOR]', '[COLOR=#000080]RAMDisk[/COLOR]'); 
    [COLOR=#0000af][B]var[/B][/COLOR] 
      Drive: Char; 
      DriveType: Integer; 
      DriveMask: Integer; 
      Flag: Integer; 
    [COLOR=#0000af][B]begin[/B][/COLOR] 
      DriveMask:=GetLogicalDrives; 
      flag:=1; 
      [COLOR=#0000af][B]for[/B][/COLOR] Drive :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]A[/COLOR]' [COLOR=#0000af][B]to[/B][/COLOR] '[COLOR=#000080]Z[/COLOR]' [COLOR=#0000af][B]do[/B][/COLOR] 
      [COLOR=#0000af][B]begin[/B][/COLOR] 
        [COLOR=#0000af][B]if[/B][/COLOR] (flag [COLOR=#0000af][B]and[/B][/COLOR] DriveMask)<>0 [COLOR=#0000af][B]then[/B][/COLOR] 
        [COLOR=#0000af][B]begin[/B][/COLOR] 
          DriveType :[COLOR=#0000af]=[/COLOR] GetDriveType(PChar(Format('[COLOR=#000080]%S:\[/COLOR]',[Drive]) ) ) ; 
          AItems.Add(Format('[COLOR=#000080]%s: %s[/COLOR]', [Drive, DriveTypeTexts[DriveType]])); 
        [COLOR=#0000af][B]end[/B][/COLOR]; 
        flag:=flag [COLOR=#0000af][B]shl[/B][/COLOR] 1; 
      [COLOR=#0000af][B]end[/B][/COLOR]; 
    [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#008000]//ANZAHL DER PROZESSOREN ERMITTELN[/COLOR] 
    [COLOR=#0000af][B]function[/B][/COLOR] GetNumberOfProcessors: Integer; 
    [COLOR=#0000af][B]var[/B][/COLOR] 
      SystemInfo: TSystemInfo; 
    [COLOR=#0000af][B]begin[/B][/COLOR] 
      GetSystemInfo(SystemInfo); 
      Result:=SystemInfo.dwNumberOfProcessors; 
    [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#008000]//WINDOWS UPTIME[/COLOR] 
    [COLOR=#0000af][B]procedure[/B][/COLOR] GetWindowsUpTime([COLOR=#0000af][B]var[/B][/COLOR] ADay, AHours, AMinutes, ASeconds: Integer); 
    [COLOR=#0000af][B]const[/B][/COLOR] 
      OneDay : Integer [COLOR=#0000af]=[/COLOR] 1000 * 60 * 60 * 24; 
      OneHour : Integer [COLOR=#0000af]=[/COLOR] 1000 * 60 * 60; 
      OneMinutes : Integer [COLOR=#0000af]=[/COLOR] 1000 * 60; 
      OneSecond : Integer [COLOR=#0000af]=[/COLOR] 1000; 
    [COLOR=#0000af][B]var[/B][/COLOR] 
      Start : Integer; 
      d, h, m, s: Integer; 
    [COLOR=#0000af][B]begin[/B][/COLOR] 
      Start:=GetTickCount; 
     
      ADay:=Start [COLOR=#0000af][B]div[/B][/COLOR] OneDay; [COLOR=#008000]//Tage[/COLOR] 
     
      d:=Start [COLOR=#0000af][B]mod[/B][/COLOR] OneDay; 
      AHours:=d [COLOR=#0000af][B]div[/B][/COLOR] OneHour; [COLOR=#008000]//Stunden[/COLOR] 
     
      h:=d [COLOR=#0000af][B]mod[/B][/COLOR] OneHour; 
      AMinutes:=h [COLOR=#0000af][B]div[/B][/COLOR] OneMinutes; [COLOR=#008000]//Minuten[/COLOR] 
     
      s:=h [COLOR=#0000af][B]mod[/B][/COLOR] OneMinutes; 
      ASeconds:=s [COLOR=#0000af][B]div[/B][/COLOR] OneSecond; [COLOR=#008000]//Sekunden[/COLOR] 
    [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#008000]//PROGRAMMSTART[/COLOR] 
    [COLOR=#008000]//------------------------------------------------------------------------------[/COLOR] 
    [COLOR=#0000af][B]procedure[/B][/COLOR] TForm1.FormCreate(Sender: TObject); 
    [COLOR=#0000af][B]var[/B][/COLOR] 
      Memory: TMemoryStatus; 
      freeCaller, total: Int64; 
    [COLOR=#0000af][B]begin[/B][/COLOR] 
      GetDrives(listbox1.Items); 
      edit1.text:=GetProzessorName; 
      edit2.Text :[COLOR=#0000af]=[/COLOR] inttostr(GetNumberOfProcessors); 
      Memory.dwLength :[COLOR=#0000af]=[/COLOR] SizeOf(Memory); 
      GlobalMemoryStatus(Memory); 
      edit6.text:=IntToStr(Memory.dwTotalPhys [COLOR=#0000af][B]div[/B][/COLOR] 1024 [COLOR=#0000af][B]div[/B][/COLOR] 1024) +'[COLOR=#000080] MB[/COLOR]'; 
      GetDiskFreeSpaceEx('[COLOR=#000080]c:[/COLOR]', freeCaller, total, [COLOR=#0000af][B]nil[/B][/COLOR]); 
      edit9.text:=floatToStr(total [COLOR=#0000af][B]div[/B][/COLOR] 1024 [COLOR=#0000af][B]div[/B][/COLOR] 1024 / 1024)  +'[COLOR=#000080] GB[/COLOR]'; 
     
    [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#0000af][B]procedure[/B][/COLOR] TForm1.Timer1Timer(Sender: TObject); 
    [COLOR=#0000af][B]var[/B][/COLOR] 
      Tage, Stunden, Minuten, Sekunden: Integer; 
      Memory: TMemoryStatus; 
      SystemPowerStatus: TSystemPowerStatus; 
      freeCaller, total: Int64; 
    [COLOR=#0000af][B]begin[/B][/COLOR] 
      edit4.Text:=IntToStr(Round(CalcCPUSpeed))+ '[COLOR=#000080] MHz[/COLOR]'; 
      GetWindowsUpTime(Tage, Stunden, Minuten, Sekunden); 
      edit11.text :=Format('[COLOR=#000080]%d Tage %d Stunden %d Minuten %d Sekunden[/COLOR]', [Tage, Stunden, Minuten, Sekunden]); 
      Memory.dwLength :[COLOR=#0000af]=[/COLOR] SizeOf(Memory); 
      GlobalMemoryStatus(Memory); 
      gauge1.MaxValue :[COLOR=#0000af]=[/COLOR] Memory.dwTotalPhys; 
      gauge1.Progress :[COLOR=#0000af]=[/COLOR] Memory.dwAvailPhys; 
      gauge2.MaxValue :[COLOR=#0000af]=[/COLOR] Memory.dwTotalPhys; 
      gauge2.Progress :[COLOR=#0000af]=[/COLOR] Memory.dwTotalPhys - Memory.dwavailPhys; 
      [COLOR=#008000]//Freier Arbeitsspeicher[/COLOR] 
      edit7.Text :[COLOR=#0000af]=[/COLOR] inttostr(Memory.dwAvailPhys [COLOR=#0000af][B]div[/B][/COLOR] 1024 [COLOR=#0000af][B]div[/B][/COLOR] 1024)+ '[COLOR=#000080] MB[/COLOR]'; 
      edit8.Text :[COLOR=#0000af]=[/COLOR] inttostr(Memory.dwTotalPhys [COLOR=#0000af][B]div[/B][/COLOR] 1024 [COLOR=#0000af][B]div[/B][/COLOR] 1024 - Memory.dwavailPhys [COLOR=#0000af][B]div[/B][/COLOR] 1024 [COLOR=#0000af][B]div[/B][/COLOR] 1024)+ '[COLOR=#000080] MB[/COLOR]'; 
      GetSystemPowerStatus(SystemPowerStatus); 
      [COLOR=#0000af][B]with[/B][/COLOR] SystemPowerStatus [COLOR=#0000af][B]do[/B][/COLOR] [COLOR=#0000af][B]begin[/B][/COLOR] 
      [COLOR=#008000]// Wird das System mit Wechselstrom oder Akku betrieben ?[/COLOR] 
        [COLOR=#0000af][B]case[/B][/COLOR] ACLineStatus [COLOR=#0000af][B]of[/B][/COLOR] 
          0: edit12.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]System wird mit Akku betrieben[/COLOR]'; 
          1: edit12.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]System wird mit Wechselstrom betrieben[/COLOR]'; 
          [COLOR=#0000af][B]else[/B][/COLOR] Label5.Caption :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Unbekannter Status[/COLOR]'; 
        [COLOR=#0000af][B]end[/B][/COLOR]; 
        [COLOR=#008000]// Ladezustand der Batterie[/COLOR] 
        [COLOR=#0000af][B]case[/B][/COLOR] BatteryFlag [COLOR=#0000af][B]of[/B][/COLOR] 
          1 : edit13.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Hoher Ladezustand[/COLOR]'; 
          2 : edit13.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Niedriger Ladezustand[/COLOR]'; 
          4 : edit13.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Kritischer Ladezustand[/COLOR]'; 
          8 : edit13.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Die Batterie wird geladen[/COLOR]'; 
          128: edit13.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Es existiert keine System-Batterie[/COLOR]'; 
          255: edit13.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Unbekannter Status[/COLOR]'; 
        [COLOR=#0000af][B]end[/B][/COLOR]; 
     
        [COLOR=#008000]// Ladezustand in Prozent[/COLOR] 
        [COLOR=#0000af][B]if[/B][/COLOR] BatteryLifePercent <> 255 [COLOR=#0000af][B]then[/B][/COLOR] 
          edit14.text :[COLOR=#0000af]=[/COLOR] IntToStr(BatteryLifePercent) + '[COLOR=#000080] %[/COLOR]' 
        [COLOR=#0000af][B]else[/B][/COLOR] 
          edit14.text :[COLOR=#0000af]=[/COLOR] '[COLOR=#000080]Unbekannter Status[/COLOR]'; 
      [COLOR=#0000af][B]end[/B][/COLOR]; 
      Memory.dwLength :[COLOR=#0000af]=[/COLOR] SizeOf(Memory); 
      GlobalMemoryStatus(Memory); 
      GetDiskFreeSpaceEx('[COLOR=#000080]c:[/COLOR]', freeCaller, total, [COLOR=#0000af][B]nil[/B][/COLOR]); 
      edit10.text:=floattostr(freeCaller [COLOR=#0000af][B]div[/B][/COLOR] 1024 [COLOR=#0000af][B]div[/B][/COLOR] 1024 / 1024)+'[COLOR=#000080] GB[/COLOR]'; 
      [COLOR=#0000af][B]end[/B][/COLOR]; 
     
    [COLOR=#0000af][B]end[/B][/COLOR].
    Alles anzeigen
    • Inhalt melden
Stil ändern
  1. Umfragen
  2. Partner
  3. Statistik
  4. Datenschutzerklärung
Stil von Darkwood.Design
Community-Software: WoltLab Suite™
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen Schließen