PHP Forum - Coding Board
Juni 18, 2018, 02:29:35 *
Willkommen Gast. Bitte einloggen oder registrieren.

Einloggen mit Benutzername, Passwort und Sitzungslänge
News:
 
   Übersicht   Hilfe Suche Einloggen Registrieren  
Seiten: [1]
  Drucken  
Autor Thema: sysinfo  (Gelesen 110 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Pallmall
Newbie
*
Beiträge: 41


Profil anzeigen E-Mail
« am: März 10, 2009, 12:07:55 »

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].
Gespeichert
Seiten: [1]
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | New Look by Nolt Prüfe XHTML 1.0 Prüfe CSS