Ich schreibe ein Diagnoseprogramm (wie Everest, aber einfacher) und ich muss wissen, wie schnell ein HardDrive ist. Ich möchte Dinge wie wissen:
1 - Bytes pro Sekunde (lesen)
2 - Bytes pro Sekunde (schreiben)
3 - S.M.A.R.T Daten
Ich denke, ich kann WMI verwenden, um solche Dinge abzufragen, aber ich habe keine Ahnung, wie. Es spielt keine Rolle, ob ich eine Komponente kaufen oder eine Open Source kaufen muss. Ich weiß auch, dass Windows Perfmoon das kann, aber ich kann es nicht benutzen.
Rafael, um die S.M.A.R.T Daten zu erhalten, können Sie die WMI oder die Windows API verwenden.
Verwenden des WMI
Die WMI classes to obtain S.M.A.R.T
Daten sind
Alle befinden sich im Namensraum root\WMI
. Leider sind diese Klassen nicht sehr gut dokumentiert.
mit WINAPI
Um auf die SMART-Daten von der Windows-API zuzugreifen, ist ein wenig mehr Arbeit erforderlich. Sie müssen die DeviceIoControl
und CreateFile
Funktionen übergeben die jeweiligen Strukturen zum Halten der Daten. Sie können viele Beispiele davon auf dem Netz finden.
Um die Geschwindigkeit einer Festplatte zu berechnen
Es gibt keine Windows API, die diese Informationen direkt verfügbar macht. also musst du das selbst berechnen. Für ein Beispiel können Sie diese Anwendung DISKSPEED
überprüfen, die den Quellcode in C ++ enthalten. Sie verwenden die Funktion CreateFile
, die das Flag FILE_FLAG_NO_BUFFERING (000000)
setzt, um festzulegen, welche Schreib- und Lesevorgänge in der Datei ausgeführt werden direkt gemacht werden, ohne gepuffert zu werden.
Tags und Links delphi hard-drive hardware winapi wmi