AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Be S.M.A.R.T. - Der S.M.A.R.T. Reader (TECH DEMO)
Thema durchsuchen
Ansicht
Themen-Optionen

Be S.M.A.R.T. - Der S.M.A.R.T. Reader (TECH DEMO)

Ein Thema von Kernel32.DLL · begonnen am 27. Aug 2004 · letzter Beitrag vom 28. Aug 2004
Antwort Antwort
Seite 2 von 3     12 3      
Kernel32.DLL
Be S.M.A.R.T. - Tech Demo

Be S.M.A.R.T. ist ein Programm, das die S.M.A.R.T. - Werte aller Festplatten ab dem Jahre 2000 ausliest.

Bei dieser Version handelt es sich um die Tech - Demo.

Mit dem Release dieser Version würde ich gerne sicherstellen, dass es auf allen in der Readme genannten Betriebssysteme unter der Voraussetzung der richtigen Hardware ordnungsgemäß funktioniert.

(Das war das Formale)

Eigentlich wollte ich das Beispielprogramm, das Microsoft als S.M.A.R.T. - Demo verwendet, nach Delphi übersetzen.
Dank der Hilfe im Forum und der sehr Umfangreichen Hilfe von "Alter Mann", dem ich an dieser Stelle noch einmal recht herzlich danken möchte, ist die Übersetzung an sich zwar gelungen, allerdings kläglich an einem falschen Parameter und schließlich an einer "Access Violation" gescheitert.

Also habe ich mir überlegt, aus der Exe eine DLL zu machen, die ich dann mit Delphi aufrufen könnte. Kenntnisse über DLL-Programmierung in Delphi waren zwar vorhanden, Kenntnisse über DLL's in C++ aber nicht.

Nichtsdestowenigertrotz habe ich es dann doch hinbekommen, das wenigsten eine Funktion, nämlich die wichtigste, aus der DLL exportiert werden konnte. Hierbei scheiterte aber die Übergabe von Variablen, so dass ich diesen, etwas umständlicheren Weg gehe:

Programm -> lädt Main der -> DLL -> schreibt die Werte -> Textdatei -> wird vom Programm


Sollte also jemand ein gutes Tut für DLL's in C++ bzw. C++ - DLL's in Delphi kennen, möge er mich dies wissen lassen.

(Zurück zum Programm)

Wie Eingangs erwähnt handelt es sich um eine "Tech - Demo", die lediglich zum Testen der Funktionsweise dient und mir Hinweise auf etwagige Fehler in der Grundstruktur geben soll.


Was das Programm bis jetzt kann:

- Lesen der S.M.A.R.T. - Werte

- Anzeigen zusätzlicher Infos (Festplattentyp, Zahl der Zylinder, Zahl der Köpfe...)

- Anzeigen der Festplattentemperatur in der TNA (evtl. nur bei Seagate - Modellen)


Was es noch können wird:
- Autostart

- Optionale Anzeige der Festplattentemperatur in der TNA (bei allen Modellen, die dies

unterstützen)

- Prüfung der Werte in bestimmten Intervallen

- Optionale audiovisuelle Hinweise auf Attributänderungen

- Unterscheiden zwischen wichtigen und weniger wichtigen Werten

- Netzwerktauglichkeit über spezielles Admintool zum überwachen kompletter Netzwerke.

- Namensgebung von Eigenschaften, die jeder Hersteller optional einbauen kann.


Bekannte Probleme:

Es ist noch keine Fehlerprüfung implementiert, weshalb es evtl. zu merkwürdigen Werten kommen kann.


Um mich bei der Entwicklung des Programmes zu unterstützen, bitte ich um Folgendes:
Testet das Programm unter sovielen Systemen wie möglich (oder wie ihr Lust und Zeit habt) und hängt entweder die "smart.smt", die sich im Arbeitsverzeichniss des Programms befindet und zusätzlich eine Beschreibung des/der PC's nach diesem Schema:

OS:
Art und Menge der Festplatten:
Festplattenhersteller:

an euren Post oder schickt beides an:
pingofdeath1986@web.de <= meine Spamadresse, insofern kann ich sie veröffentlichen und jeder Mailbot kann sie finden .

Es sei noch zu erwähnen, dass unter NT-Systemen nur die erste Festplatte abgefragt wird (wird
noch gefixt!). Bei 9x und Me sollten alle abgefragt werden.

[EDIT 1] Zum Ausführen des Programmes werden unter NT-Systemen Adminrechte benötigt![/EDIT 1]
[EDIT 2] Die unter Win9x/ME benötigte Datei SMARTVSD.VXD befindet sich u.U. im Ordner /Windows/System
Sie muss in den Ordner /Windows/System/iosubsys verschoben werden![/EDIT 2]
Miniaturansicht angehängter Grafiken
das_programm.jpg  
Angehängte Dateien
Dateityp: zip besmart.zip (636,2 KB, 98x aufgerufen)
 
Benutzerbild von mirage228
mirage228

 
Delphi 2010 Professional
 
#11
  Alt 27. Aug 2004, 16:32
Hi ho

Win XP Prof. SP2
IBM ICL35L060AVER07-0 60 GB, 7.2 RPM

mfG
mirage228
Angehängte Dateien
Dateityp: zip smart_204.zip (782 Bytes, 7x aufgerufen)
David F.
  Mit Zitat antworten Zitat
Kernel32.DLL
 
#12
  Alt 27. Aug 2004, 16:51
Danke für die zahlreichen Tests in so kurzer Zeit! Nur weiter so!!!

Zitat von Alexander:
PS: Ich hoffe mal, in der DAtei sind keine "geheimen" Infos wie Windows-Key oder so was , habe sie nämlich nicht geöffnet...
Keine Angst, sowas hab' ich nicht nötig


Zitat von Luckie:
---------------------------
Be S.M.A.R.T.
---------------------------
Datei smart.smt kann nicht geöffnet werden.
---------------------------
OK
---------------------------
Hmm... Eigentlich sollte sich die Datei im Arbeitsverzeichniss des Programms befinden, da sie beim ersten Aufruf der DLL automatisch erstellt wird. Schonmal nach der Datei gesucht? Ansonsten hilft es vielleicht, die Datei selbst zu erstellen *Nach Ursache Forsch*

@sakura: Beim Lesen der S.M.A.R.T. - Werte aus der "smart.smt" ist etwas schief gelaufen!
Die Datei könnte aufschluss bringen *haben muss*
  Mit Zitat antworten Zitat
scp

 
Delphi 7 Personal
 
#13
  Alt 27. Aug 2004, 16:53
Microsoft Windows XP
Home Edition
SP2 Final

Festplatten:
WDC WD205AA-00BAA0
WDC WD300BB-00AUA1


Die WD205AA wird nicht erkannt.
Angehängte Dateien
Dateityp: zip smart_141.zip (757 Bytes, 9x aufgerufen)
  Mit Zitat antworten Zitat
Kernel32.DLL
 
#14
  Alt 27. Aug 2004, 18:24
Was mir grad noch auffiel:

Zitat von c113plpbr:
Ääähhhm ... entweder steht meine festplatte kurz davor in rauch aufzugehen, oder dein programm funktioniert nicht ... bei mir stehen
alle werte auf dem gleichen wie worst
Ja, wunderbar! Das bedeutet nämlich, das alle Werte, die gerade gelesen wurden, zugleich auch die schlechtesten sind, die deine Festplatte je aufgezeichnet hat. Ich würde mich freuen, zumal sie von den Grenzwerten weit weg liegen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#15
  Alt 27. Aug 2004, 19:49
Zitat von Kernel32.DLL:
Zitat von Luckie:
---------------------------
Be S.M.A.R.T.
---------------------------
Datei smart.smt kann nicht geöffnet werden.
---------------------------
OK
---------------------------
Hmm... Eigentlich sollte sich die Datei im Arbeitsverzeichniss des Programms befinden, da sie beim ersten Aufruf der DLL automatisch erstellt wird. Schonmal nach der Datei gesucht? Ansonsten hilft es vielleicht, die Datei selbst zu erstellen *Nach Ursache Forsch*
Genau da liegt sie auch.
Michael
  Mit Zitat antworten Zitat
Kernel32.DLL
 
#16
  Alt 27. Aug 2004, 19:55
Verdammt!!

Wieso kann ich denn nicht lesen:

Zitat von Luckie:
---------------------------
Be S.M.A.R.T.
---------------------------
Datei smart.smt kann nicht geöffnet werden.
---------------------------
OK
---------------------------
geöffnet nicht gefunden

Hat da vielleicht ne' DLL sie nicht ordnungsgemäß geschlossen?

Ich pflück den C Code mal (wieder) auseinander
  Mit Zitat antworten Zitat
Brüggendiek

 
Delphi 5 Standard
 
#17
  Alt 28. Aug 2004, 00:06
Hallo!

Zitat von Luckie:
---------------------------
Be S.M.A.R.T.
---------------------------
Datei smart.smt kann nicht geöffnet werden.
---------------------------
OK
---------------------------
Bei mir klappt das auch teilweise nicht!

WinXP Home, SP2
Als Benutzer: Fehler! (Datei wird aber ggf. neu angelegt)
Als Admin: klappt!
Verknüpfung auf Desktop, Userrechte und Ausführen als Admin: klappt!

Was soll das - kann man die Infos nur mit Admin-Rechten auslesen, gehört das in die ReadMe und man sollte das Programm mit einer passenden Meldung beenden, wenn keine Admin-Rechte da sind.

Woher kriege ich übrigens die für 9x erforderliche Datei im Windows-System laut ReadMe? Mein 98SE hat die nicht, da kommt auch der bekannte Fehler!

Ursache des Fehlers ist offensichtlich ein Problem mit der VXD und einer Exception, die falsch abgefangen wurde.

Gruß

Dietmar Brüggendiek
edit: arggh - das ist ja keine DLL, sondern ne VXD
Dietmar Brüggendiek
  Mit Zitat antworten Zitat
Muetze1
 
#18
  Alt 28. Aug 2004, 01:18
Moin!

Ansonsten noch ein Code der dir vielleicht hilft. Zum einen kannst du dir damit die DLLs sparen und alles im Delphi Programm machen und zum anderen kannst du damit direkt ATA/ATAPI Befehle an die Geräte schicken. Näheres dazu hier bei der c't "Plattendressur". Zwei Projekte samt Quellcodes.

MfG
Muetze1
  Mit Zitat antworten Zitat
Kernel32.DLL
 
#19
  Alt 28. Aug 2004, 10:50
Zitat von Brüggendiek:
Was soll das - kann man die Infos nur mit Admin-Rechten auslesen, gehört das in die ReadMe und man sollte das Programm mit einer passenden Meldung beenden, wenn keine Admin-Rechte da sind.
Gut, mein Fehler, bin davon ausgegangen, dass man als Programmierer ein Konto mit Adminrechten hat, werde meinen Post entsprechend bearbeiten, obwohl ich vielleicht indirekt drauf verwiesen hab':

Zitat von Kernel32.DLL:
Es ist noch keine Fehlerprüfung implementiert...
Zitat von Brüggendiek:
Woher kriege ich übrigens die für 9x erforderliche Datei im Windows-System laut ReadMe? Mein 98SE hat die nicht, da kommt auch der bekannte Fehler!
[Laufwerk]/Windows/System/Smartvsd.vxd <= Dort sollte sie liegen, ansonsten hilft die Windows Suchfunktion
muss nach
[Laufwerk]/Windows/System/iosubsys/Smartvsd.vxd
verschoben werden.

(Ist übrigens nicht meine Schuld, sondern die von Microsoft)

Zitat von Brüggendiek:
und einer Exception, die falsch abgefangen wurde.
Exceptions werden in der TECH-DEMO nicht abgefangen, wie ich bereits am Anfang des Themas erwähnte.


mfg
Daniel
  Mit Zitat antworten Zitat
Kernel32.DLL
 
#20
  Alt 28. Aug 2004, 11:25
@Muetze1:

Danke für den Link, allerdings hilft er mir nicht sehr viel weiter...

Was ich bräuchte, wäre ein gutes Tutorial über DLL-Programmierung in C++ und ein gutes Tutorial über den Aufruf von C++ DLL's in Delphi mit übergabe aller Parameter und Variablen in beide Richtungen (Programm => DLL und DLL => Programm) Dann könnte ich mir die smart.smt sparen und würde mich etwas sicherer fühlen.

An sich ist der Microsoft Source nämlich nicht schlecht, die Übersetzung nach Delphi scheiterte nur (siehe meinen 1. Post)
  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 01:31 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