Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Betriebsstunden einer Festplatte auslesen? (https://www.delphipraxis.net/113188-betriebsstunden-einer-festplatte-auslesen.html)

DelphiPeter 4. Mai 2008 11:07


Betriebsstunden einer Festplatte auslesen?
 
Hallo!

Weiß jemand von euch, wie ich die betriebsstunden einer Festplatte auslesen kann? Das müsste doch irgendwie zu machen sein, oder? Habe leider bis jetzt noch nichts dazu finden können.

Gruß
Peter

ddcool 4. Mai 2008 11:11

Re: Betriebsstunden einer Festplatte auslesen?
 
Das ganze nennt sich S.M.A.R.T. sofern das die Festplatte unterstützt.
Wie man das damit hinbekomm weiss ich leider nicht.
Vll kannst du das auch über WMI auslesen.
Benutzt mal due SuFu oder Google.


Grüße

ddcool


Edit: Hier ist noch ein Link zum Wikipedia Artikel: http://de.wikipedia.org/wiki/Self-Mo...ing_Technology

Edit2: @himitsu: Danke für deine Ergänzung. Hatte vergessen das zu schreiben. :thumb:

himitsu 4. Mai 2008 11:24

Re: Betriebsstunden einer Festplatte auslesen?
 
S.M.A.R.T. ist richtrig und dazu gibt's hier auch schon einige Threads (vorwiegend von Muetze1 und Co.).

Aber es muß nicht nur die festplatte unterstützen, sondern auch die Controler,
denn diese müßen ja die Befehle weiterleiten.

(z.B.: meine IDE- und SATA-Plättchen daheim unterstützen alle S.M.A.R.T., aber der IDE-Controler nicht ... folglich hab ich nur bei den S-ATAs Zugriff darauf)

hathor 6. Nov 2010 18:01

AW: Betriebsstunden einer Festplatte auslesen?
 
Der Thread ist zwar alt, aber weil so etwas immer wieder gesucht wird::-D:-D:-D

ATTR_POWER_ON_HRS_COUNT u.a.

http://www.magsys.co.uk/delphi/magwmi.asp
http://www.magsys.co.uk/download/software/magwmi53.zip

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls,
  smart_drv, magsubs1, magwmi;// http://www.magsys.co.uk/download/software/magwmi53.zip

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Memo1: TMemo;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    function GetDriveTemp(drive:longint):byte;

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function HexToStr(w : Int64) : string;
const
  ByteToChar : array[0..$F] of char ='0123456789ABCDEF';
var
  s : string;
  i : integer;
  x : int64;
begin
  s := '';
  x := w;
  for i := 0 to 3 do
  begin
    s := ByteToChar[Byte(x) shr 4] + ByteToChar[Byte(x) and $F] + s;
    x := x shr 8;
  end;
  HexToStr := s;
end;


function TForm1.GetDriveTemp(drive:Integer):byte;
var i, B2 : Integer;
begin
result:=0;  Memo1.clear;
ReadSMART;
for i:=0 to 255 do
begin
//  ATTR_READ_ERROR_RATE = 1;
if SCOP[0].attr[i].bAttrID=1 then
begin
result:=SCOP[0].attr[i].Raw[0];
Memo1.lines.add('ATTR_READ_ERROR_RATE: '+HexToStr(result));
end;
//ATTR_POWER_ON_HRS_COUNT = 9;
if SCOP[0].attr[i].bAttrID=9 then
begin
B2:= SCOP[0].attr[i].Raw[0]+(SCOP[0].attr[i].Raw[1]*256);
Memo1.lines.add('ATTR_POWER_ON_HRS_COUNT in hours: '+IntToStr(B2));
end;
//ATTR_TEMPERATURE_CELCIUS = 194 ;
if SCOP[0].attr[i].bAttrID=194 then
begin
result:=SCOP[0].attr[i].Raw[0];
Memo1.lines.add('ATTR_TEMPERATURE_CELCIUS: '+IntToStr(result));
break;
end;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
Begin
GetDriveTemp(0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
GetDriveTemp(0);
end;

end.

(*
Const
  ATTR_INVALID = 0;
  ATTR_READ_ERROR_RATE = 1;
  ATTR_THROUGHPUT_PERF = 2;
  ATTR_SPIN_UP_TIME = 3;
  ATTR_START_STOP_COUNT = 4;
  ATTR_REALLOC_SECTOR_COUNT = 5;
  ATTR_READ_CHANNEL_MARGIN = 6;
  ATTR_SEEK_ERROR_RATE = 7;
  ATTR_SEEK_TIME_PERF = 8;
  ATTR_POWER_ON_HRS_COUNT = 9;
  ATTR_SPIN_RETRY_COUNT = 10;
  ATTR_CALIBRATION_RETRY_COUNT = 11;
  ATTR_POWER_CYCLE_COUNT = 12;
  ATTR_EMERGENCY_RETRACT_CYCLE = 192 ; // C0
  ATTR_LOAD_CYCLE_COUNT = 193 ; // C1
  ATTR_TEMPERATURE_CELCIUS = 194 ; // C2
  ATTR_HARDWARE_ECC = 195 ; // C3
  ATTR_REALLOCATION_EVENT_COUNT = 196 ; // C4
  ATTR_CURRENT_PENDING_SECTOR = 197 ; // C5
  ATTR_OFF_LINE_UNCORRECTABLE = 198 ; // C6
  ATTR_ULTRA_ATA_CRC_ERROR_RATE = 199 ; // C7
  ATTR_MULTI_ZONE_ERROR_RATE = 200 ; // C8
  ATTR_SOFT_READ_ERROR_RATE = 201 ; // C9
  ATTR_OFF_TRACK_ERRORS = 201 ; // C9 - alternative Maxtor
  ATTR_TA_INCREASE_COUNT = 202 ; // CA
  ATTR_RUN_OUT_CANCEL = 203 ; // CB
  ATTR_ECC_ERRORS = 203 ; // CB - alternative Maxtor
  ATTR_SHOCK_COUNT_WRITE_OPS = 204 ; // CC
  ATTR_SHOCK_RATE_WRITE_OPS = 205 ; // CD
  ATTR_SPIN_HIGH_CURRENT = 207 ; // CE
  ATTR_SPIN_BUZZ = 208 ; // CF
  ATTR_OFFLINE_SEEK_PERF = 209 ; // D0
  *)

omata 6. Nov 2010 20:21

AW: Betriebsstunden einer Festplatte auslesen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal eine Zusammenstellung, die das wesentliche enthält.

toms 7. Nov 2010 07:19

AW: Betriebsstunden einer Festplatte auslesen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von omata (Beitrag 1060111)
Hier mal eine Zusammenstellung, die das wesentliche enthält.

So, und jetzt sollte es auch mit Windows Vista/7 und Delphi Unicode funktionieren.

Bummi 7. Nov 2010 08:25

AW: Betriebsstunden einer Festplatte auslesen?
 
@toms
Danke, bliebe noch zu erwähnen dass ab Vista administrative Rechte benötigt werden.

Luckie 7. Nov 2010 08:27

AW: Betriebsstunden einer Festplatte auslesen?
 
Danke, jetzt sehe ich unter Windows 7 Starter auch was. ;)

Bummi 7. Nov 2010 08:42

AW: Betriebsstunden einer Festplatte auslesen?
 
@Luckie
mach mich schlau, ich hatte einen derartigen Kastraten noch nicht in den Händen.:shock:

Luckie 7. Nov 2010 08:55

AW: Betriebsstunden einer Festplatte auslesen?
 
Windows 7 Starter ist üblicherweise auf Netbooks installiert. Damit muss ich mich im Moment zufrieden geben, da ich im Moment aus gesundheitlichen Gründen bei meinen Eltern wohne und nur ab und zu mal an meinem Rechner mit XP zu Hause komme.

Es unterscheidet sich in so fern von anderen Windows 7 Versionen, dass es etwas kastriert ist. Kein Aero, man kann das Hintergrundbild nicht ändern usw. Aber ansonsten habe ich bisher noch keine Einschränkungen feststellen können, außer dass mein Usermanager unter Windows 7 Starter streikt. Hat irgendwas mit dem Netzwerk zu tun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz