AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Betriebsstunden einer Festplatte auslesen?
Thema durchsuchen
Ansicht
Themen-Optionen

Betriebsstunden einer Festplatte auslesen?

Ein Thema von DelphiPeter · begonnen am 4. Mai 2008 · letzter Beitrag vom 7. Nov 2010
Antwort Antwort
Seite 2 von 3     12 3      
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 11:14
Hier mal eine Version, die nach Adminrechten fragt, wenn sie nicht vorhanden sind.
Angehängte Dateien
Dateityp: zip HDDInfo.zip (9,4 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#12

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 11:34
Hier geht es um die administrativen Rechte in der Art von "Ausführen als Administrator" läßt sich AFAIK nur über ein entsprechendes Manifest erreichen und dann nicht umschaltbar, sondern direkt beim Programmstart.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#13

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 11:53
Hier mal eine Version, die nach Adminrechten fragt, wenn sie nicht vorhanden sind.
Habe es ohne Adminrechte unter Vista getestet. Resultat: Es funktioniert auch ohne diese Rechte und zudem wird nicht nach Adminrechten gefragt.
Thomas

Geändert von toms ( 7. Nov 2010 um 12:09 Uhr)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#14

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 12:07
Ok, wenn ihr dafür keine Adminrechte benötigt ist das ja ok. Wenn dann das Programm auch nicht fragt ist doch noch besser! Ich habe hier XP und da geht es nur mit Adminrechten. Wenn mein Benutzer diese hat, wird nicht gefragt und wenn er die benötigten Rechte nicht hat, wird danach gefragt und man kann sie sich durch eine entsprechende Anmeldung geben.

Ich fand die Erweiterung ganz sinnvoll, aber wenn sie nicht nötig ist, dann eben nicht.

@Bummi: Es hat noch niemand mein Beispiel heruntergeladen. Also vielleicht erst mal anschauen und dann rumblubbern.

Geändert von omata ( 7. Nov 2010 um 12:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#15

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 12:49
@omata
ich hatte das Beispiel heruntergeladen und getestet, also nichts mit "rumblubbern".
Den Benutzerkontext fragt er bei mir auch nicht ab da ich bereits unter dem Adminkonto arbeite, mit Windows 7 ohne deaktivierte Benutzerkontensteuerung liefert das Programm kein Ergebnis, bei "Als Administror ausführen" schon.
Ich bleibe bei meiner Aussage und verbitte mit Anmerkungen wie "rumblubbern".

MfG
Thomas
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#16

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 12:54
@Bummi: Es hat noch niemand mein Beispiel heruntergeladen.
Die Anzeige "XX aufgerufen" wird nicht immer aktualisiert - habe ich beim IE schon festgestellt.
Thomas
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#17

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 13:00
Dann eben nicht, macht euren Mist doch allein. Habe es nur gut gemeint. Habe aber nun verstanden, das das ein Fehler war.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#18

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 16:25
Kleine Erweiterung: DRIVE INVALID, wenn keine S.M.A.R.T.-Daten gelesen werden können:

Delphi-Quellcode:
.
.
.
procedure TFMain.getDriveInfos(drive: Integer; Infos: TStrings);
var
  i: Integer;
begin
  Infos.Clear;
  ReadSMART;
  if SCOP[drive].attr[0].bAttrID =0 then
  Begin
    Infos.Append('Drive '+ IntToStr(drive)+': DRIVE INVALID');
    Exit;
  End;
  for i := 0 to 255 do
  begin
    if SCOP[drive].attr[i].bAttrID = ATTR_READ_ERROR_RATE then
    begin
      Infos.Append('Drive '+ IntToStr(drive)+': S.M.A.R.T. DATA'+#13#10);
      Infos.Append(Format(
        'ATTR_READ_ERROR_RATE: %s',
        [HexToStr(SCOP[drive].attr[i].Raw[0])]
        ));
    end;
    if SCOP[drive].attr[i].bAttrID = ATTR_POWER_ON_HRS_COUNT then
    begin
      Infos.Append(Format(
        'ATTR_POWER_ON_HRS_COUNT in hours: %d',
        [SCOP[drive].attr[i].Raw[0] + (SCOP[drive].attr[i].Raw[1] * 256)]
        ));
    end;
    if SCOP[drive].attr[i].bAttrID = ATTR_TEMPERATURE_CELCIUS then
    begin
      Infos.Append(Format(
        'ATTR_TEMPERATURE_CELCIUS: %d',
        [SCOP[drive].attr[i].Raw[0]]
        ));
    end;
  end;
end;

procedure TFMain.Button1Click(Sender: TObject);
begin
  getDriveInfos(0, MeInfo.Lines);
end;

procedure TFMain.Button2Click(Sender: TObject);
begin
  getDriveInfos(1, MeInfo.Lines);
end;

procedure TFMain.Button3Click(Sender: TObject);
begin
  getDriveInfos(2, MeInfo.Lines);
end;

procedure TFMain.Button4Click(Sender: TObject);
begin
  getDriveInfos(3, MeInfo.Lines);
end;

procedure TFMain.FormCreate(Sender: TObject);
begin
  getDriveInfos(0, MeInfo.Lines);
end;

end.

Geändert von hathor ( 7. Nov 2010 um 16:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#19

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 16:37
ich trau mich ja gar nicht mehr, aber dann müßte es
    Infos.Append('Drive '+ IntToStr(drive)+': DRIVE INVALID or Missing administrative rights'); heißen
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#20

AW: Betriebsstunden einer Festplatte auslesen?

  Alt 7. Nov 2010, 17:06
ich trau mich ja gar nicht mehr, aber dann müßte es
    Infos.Append('Drive '+ IntToStr(drive)+': DRIVE INVALID or Missing administrative rights'); heißen
Es geht hier aber nur um ATTR_INVALID = 0; - ob es bei Missing administrative rights
bis hierher kommt, ist zweifelhaft! Dafür braucht man eine andere Abfrage.
-----------------
Ich habe es mit WIN 7 64Bit getestet:
Ohne Aadministrative rights kommt man bis zu dieser Abfrage, was aber irreführend ist, denn diese
S.M.A.R.T.-Abfrage ist mit Aadministrative rights möglich.
Es müsste also VOR dem ATTR_INVALID = 0-Test eine Abfrage nach den Rechten erfolgen, dann ist dieser "Schönheitsfehler weg".

Geändert von hathor ( 7. Nov 2010 um 17:36 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 17:16 Uhr.
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