AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

S.M.A.R.T. figured out

Ein Thema von Razor · begonnen am 6. Aug 2007 · letzter Beitrag vom 23. Dez 2013
 
Razor
(Gast)

n/a Beiträge
 
#5

Re: S.M.A.R.T. figured out

  Alt 23. Aug 2007, 20:58
Maybe something like this can be used with the smartdrv.pas to get smart values.



Delphi-Quellcode:
//CAUTION BELLOW CODE DOES NOT PROVIDE SMART UNDER RAID,SATA OR PATA ONLY IDE! :P


procedure TMainFrm.doSmartClick(Sender: TObject);


var
    errinfo, model, serial: string ;
    diskbytes: int64 ;
    value1:integer;
    value2:integer ;
    value3:integer ;
    value4:integer ;
    value5:integer ;
     value6:integer ;
    value7:integer ;
    value8:integer ;
    value9:integer ;
    value10:integer ;
    value11:integer ;
    value12:integer;
    value13:integer ;

    SmartResult: TSmartResult ;
    I: integer ;

    function GetYN (value: boolean): string ;
    begin
        result := 'No' ;
        if value then result := 'Yes' ;
    end ;

begin

    value1 := (0) ;
    value2 := (1) ;
    value3 := (2) ;
    value4 := (3) ;
    value5 := (4) ;
    value6 := (5) ;
    value7 := (6) ;
    value8 := (7) ;
    value9 := (8) ;
    value10 := (9) ;
    value11 := (10) ;
    value12 := (11);
    value13 := (12) ;



     listview.ViewStyle:=vsreport;
    ListView.Items.Clear ;
    if NOT MagWmiSmartDiskInfo (DiskNum.Value, errinfo, model, serial, diskbytes) then
    begin
        if MagWmiScsiDiskInfo (DiskNum.Value, errinfo, model, serial, diskbytes) then
            ResInfo.Text := 'SCSI Serial: ' + serial {+
                                             ', Size = ' + Int64ToCStr (diskbytes) }

        else
            ResInfo.Text := errinfo ;
        exit ;
    end ;
    if naloziljeze=false then begin
         RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value1 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value2 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value3 )) ;
           RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value4 )) ;
            RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value5)) ;
             RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value6 )) ;
              RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value7 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value8 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value9 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value10 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value11 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value12 )) ;
          RzComboBox1.Items.Add(magwmi.MagWmiGetDiskModel( value13 )) ;
        if

         RzComboBox1.Items.Text='then RzComboBox1.Items.clear;
         button1.Click;
        end;

   //ResInfo.Text := 'IDE Model: ' + model + ', Serial: ' + serial +
                                            // ', Size = ' + Int64ToCStr (diskbytes) ;
    if NOT MagWmiSmartDiskFail (DiskNum.Value, SmartResult, errinfo) then
    begin
        ResInfo.Text := errinfo ;
        exit ;
    end ;
    if SmartResult.TotalAttrs = 0 then
    begin
        ResInfo.Text := ResInfo.Text + ' No SMART Attributes Returned - ' + errinfo ;
        exit ;
    end ;
    LabelInstances.Caption := 'SMART Attributes'  ;
    with ListView.Columns do
    begin

        Items [1].Caption := 'Name' ;
        Items [2].Caption := 'State' ;
        Items [3].Caption := 'Current' ;
        Items [4].Caption := 'Worst' ;
        Items [5].Caption := 'Threshold' ;
        Items [6].Caption := 'Raw Value' ;
        Items [7].Caption := 'Pre-Fail?' ;
        Items [8].Caption := 'Events?' ;
        Items [9].Caption := 'Error Rate?' ;
    end ;

// ListView.Items.Add.Caption := 'Hours ' + IntToStr (SmartResult.HoursRunning) ;
    //ListView.Items.Add.Caption := 'Realloc Sec ' + IntToStr (SmartResult.ReallocSector) ;
    if SmartResult.SmartFailTot <> 0 then
        ListView.Items.Add.Caption := 'SMART Test Failed, Bad Attributes ' +
                                             IntToStr (SmartResult.SmartFailTot)
    else
        //ListView.Items.Add.Caption := 'SMART Test Passed' ;
    for I := 0 to Pred (SmartResult.TotalAttrs) do
    begin
        with ListView.Items.Add do
        begin
            //Caption := IntToStr (SmartResult.AttrNum [I]) ;
             SubItems.Add (SmartResult.AttrName [I]) ;
            SubItems.Add (SmartResult.AttrState [I]) ;
            SubItems.Add (IntToStr (SmartResult.AttrCurValue [I])) ;
            SubItems.Add (IntToStr (SmartResult.AttrWorstVal [I])) ;
            SubItems.Add (IntToStr (SmartResult.AttrThreshold [I])) ;
            SubItems.Add (IntToCStr (SmartResult.AttrRawValue [I])) ;
            SubItems.Add (GetYN (SmartResult.AttrPreFail [I])) ;
            SubItems.Add (GetYN (SmartResult.AttrEvents [I])) ;
            SubItems.Add (GetYN (SmartResult.AttrErrorRate [I])) ;
        end ;
    end ;

    naloziljeze:=true;
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz