Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Festplattenzugriff sichtbar machen (LED im Tray) (https://www.delphipraxis.net/174484-festplattenzugriff-sichtbar-machen-led-im-tray.html)

DelTurbo 24. Apr 2013 13:30


Festplattenzugriff sichtbar machen (LED im Tray)
 
Hi,
ich möchte gerne ein kleines Tool schreiben, was mir im Tray "sagt" das auf die festplatte zugegriffen wird. Leider habe ich nix darüber gefunden.

Im Tray soll z.b. ein kleines LED sein, was dann z.b. angeht bzw. ausgeht.

Ich wollte einen Timer machen das alle xxxms irgendwo abfragt ob grade ein zugriff läuft. Blos weiss ich halt nicht wo.

Danke im voaraus

DelTurbo 25. Apr 2013 08:10

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Ist das hier der falsche Thread? Wenn ja, dann sorry....

Der schöne Günther 25. Apr 2013 08:42

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Vom Themenbereich hätte ich es jetzt eher bei der WinAPI gesehen, aber daran soll es jetzt sicher nicht scheitern...

Spontan wüsste ich nichts und habe auf die Schnelle auf MSDN auch nichts gefunden - Ich kenne nur den Windows-Ressourcenmonitor der für jeden Prozess seinen Festplattenzugriff (Lese/Schreibrate, geöffnete Dateien, ...) anzeigen kann.

Allerdings sind selbst dort die Werte nicht top-aktuell, ich wäre nicht überrascht, wenn man seit WinNT die "IDE-LED" nicht mehr softwareseitig ersetzen kann.

DelTurbo 25. Apr 2013 08:53

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Erstmal danke für den hinweis. Ich dachte mir heute morgen schon das es der falsche Thread ist. Weil wenn ich was gelernt habe, ist es, das man hier wirklich hilfe bekommt. Selbst wenn ich mal was blödes frage, weil ich grade den Wald vor lauter bäumen nicht sehe. :oops:

Irgendwas müsste es aber geben, glaube ich. Es gibt ja z.b. von O&O DriveLED. Die zeigen das auch an. Aber ansonten ist die Soft von denen nicht so doll. Deswegen wollte ich mir da selber was "basteln" was ich z.b. auch Remote abfragen kann. Ist ja z.b. mit Clever oder Indy kein problem.

hathor 25. Apr 2013 09:14

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
DriveGLEAM is a harddrive activity indicator and also include built in extensions for monitoring CPU and memory load. It works by immitating the harddrive LED on screen. This is a very useful if your computer case is hidden (under the table) or on another physical location (remote desktop). DriveGLEAM features independent indicators for each drive or partition and allows you to monitor both read and write access. As a option DriveGLEAM allows for external output (via the parallel port) so it will be possible to build a LED panel for monitoring your hard-drives with real physical LED's. The difference between the build in HDD access LED on your computer case and DriveGLEAM external ones is that DriveGLEAM allows for independent colored LED's for read or write access. DriveGLEAM can also use your keyboard's scroll lock LED as a activity indicator.

How DriveGLEAM works:
None of your business - it's top secret ;)
.
http://www.dirtcellar.net/documentation/DriveGLEAM/

Colors are RED = write, GREEN = read, YELLOW = read+write and finaly BLUE = idle
http://www.dirtcellar.net/documentat...ages/tray1.PNG

http://www.windows7download.com/win7...-xelsiunu.html
.
.
FloatLED is a free and super space optimized Drive monitoring LED software.

An neat little program that monitors drive activity and shows them as blinking read, write and read/write icons in a mini optimzied floating window to place anywhere on your workspace. Preferbly on the titlebar. Auto detects whenever a Drive is removed or turned on (USB HDD's for instance).

http://www.stone-oakvalley-studios.c...atled-v112.zip

DelTurbo 25. Apr 2013 09:35

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Ja genau sowas meine ich. Also fast ;)

Ich hätte nur gerne selber gemacht.

Morphie 25. Apr 2013 09:36

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Mit Sicherheit ist das möglich. Schau dir z.B. mal die Software ProzessMonitor an. Die überwacht z.B. das komplette Dateisystem in Echtzeit und gibt an, wo Lese / Schreibzugriffe stattfinden.

Wie das genau funktioniert, weiß ich nicht... Ich vermute aber mal, dass das Programm globale API-Hooks benutzt und somit alle möglichen Schreib/Lese-Funktionen von Windows hookt...

mentaltec 25. Apr 2013 11:23

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Hi,

ich würde hier ansetzten :

Performance Monitoring

da kann man Tod und Teufel abrufen, ist aber sehr komplex

man kann auch die WMI oder SNMP bemühen -- hab zZt. leider nix fertiges da, steht auf meiner TODO-List auf Seite 3

mfg

sx2008 25. Apr 2013 11:41

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Zitat:

Zitat von Morphie (Beitrag 1212821)
Wie das genau funktioniert, weiß ich nicht...

Es wird zur Laufzeit ein Systemtreiber (PROCMON23.SYS) installiert und zum Programmende wieder entfernt.

Morphie 25. Apr 2013 12:26

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Ah, okay, gut zu wissen ;)
Wird dann wohl mit Delphi schwierig...

DelTurbo 26. Apr 2013 07:39

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Also bleibt es ein wunschtraum? Schaaaade....

Trotzdem vielen dank

hathor 27. Apr 2013 16:56

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
HDDLED:
http://staff-www.uni-marburg.de/~schmitzr/hddled.zip
ist von troubadix =Dr. Raimund Schmitz
http://www.medizin-physik-experte.de/
info@medizin-physik-experte.de

hathor 27. Apr 2013 19:37

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
DiskMon is an application that logs and displays all hard disk activity on a Windows system.

You can also minimize DiskMon to your system tray where it acts as a disk light, presenting a green icon when there is disk-read activity and a red icon when there is disk-write activity.

Installation and Use

Installing DiskMon is as easy as unzipping it and typing, "diskmon." The menus and toolbar buttons can be used to disable event capturing, control the scrolling of the listview, and to save the listview contents to an ASCII file.

To have DiskMon function as a disk light in your system tray, select the Options|Minimize to Tray menu item, or start DiskMon with a "/l" (lower-case L) command-line switch e.g. diskmon /l. To reactivate the DiskMon window double-click on the DiskMon tray icon. To create a shortcut to Diskmon in the tray create a shortcut in your Program Files\Startup folder, edit the properties of the shortcut and set the Target to point at the executable with the path in quotations and the switch outside the quotes:

"C:\Sysinternals Tools\Diskmon.exe" /l


http://technet.microsoft.com/en-us/s.../bb896646.aspx

hathor 27. Apr 2013 19:48

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Ich glaube, einen Weg gefunden zu haben, wie man auch mit DELPHI eine HDD-READ/WRITE-Anzeige realisieren kann. :-D

Stichwörter:
Device Input and Output Control (IOCTL) = DeviceIoControl
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

The DeviceIoControl function provides a device input and output control (IOCTL) interface through which an application can communicate directly with a device driver. The DeviceIoControl function is a general-purpose interface that can send control codes to a variety of devices. Each control code represents an operation for the driver to perform. For example, a control code can ask a device driver to return information about the corresponding device, or direct the driver to carry out an action on the device, such as formatting a disk.
-
Gefunden hier:
{ ref JwaWinIoctl.pas }
unit winconst_ioctl;

Delphi-Quellcode:
// This structure defines the disk logging record. When disk logging
// is enabled, one of these is written to an internal buffer for each
// disk request.
//

  PDISK_RECORD = ^DISK_RECORD;
  _DISK_RECORD = record
    ByteOffset: LARGE_INTEGER;
    StartTime: LARGE_INTEGER;
    EndTime: LARGE_INTEGER;
    VirtualAddress: Pointer; //PVOID;
    NumberOfBytes: DWORD;
    DeviceNumber: BYTE;
    ReadRequest: ByteBool;
  end;
  DISK_RECORD = _DISK_RECORD;
  TDiskRecord = DISK_RECORD;
  PDiskRecord = PDISK_RECORD;

//
// The following structure is exchanged on an IOCTL_DISK_LOG request.
// Not all fields are valid with each function type.
//

  PDISK_LOGGING = ^DISK_LOGGING;
  _DISK_LOGGING = record
    Function_: BYTE;
    BufferAddress: PVOID;
    BufferSize: DWORD;
  end;
  DISK_LOGGING = _DISK_LOGGING;
  TDiskLogging = DISK_LOGGING;
  PDiskLogging = PDISK_LOGGING;

//
// Disk logging functions
//
// Start disk logging. Only the Function and BufferSize fields are valid.
//

const
  DISK_LOGGING_START = 0;

//
// Stop disk logging. Only the Function field is valid.
//

  DISK_LOGGING_STOP = 1;

DelTurbo 28. Apr 2013 08:43

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Zitat:

Zitat von hathor (Beitrag 1213192)
Ich glaube, einen Weg gefunden zu haben, wie man auch mit DELPHI eine HDD-READ/WRITE-Anzeige realisieren kann. :-D

Vielen dank. Werde ich mir morgen direkt mal ansehen.

hathor 28. Apr 2013 14:18

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
So geht es:

WMI
Class: Win32_PerfFormattedData_PerfDisk_PhysicalDisk
Instance: Name: 0, 1, 2, etc. für HDD0, HDD1, HDD2 etc.

Durch Auswertung der READ/WRITE-Werte kann man dann einem Panel o.a. eine Farbe zuweisen.


Beispiel:
AvgDiskBytesPerRead: 0
AvgDiskBytesPerTransfer: 0
AvgDiskBytesPerWrite: 0
AvgDiskQueueLength: 0
AvgDiskReadQueueLength: 0
AvgDisksecPerRead: 0
AvgDisksecPerTransfer: 0
AvgDisksecPerWrite: 0
AvgDiskWriteQueueLength: 0
CurrentDiskQueueLength: 0
DiskBytesPersec: 0
DiskReadBytesPersec: 0
DiskReadsPersec: 0
DiskTransfersPersec: 0
DiskWriteBytesPersec: 0
DiskWritesPersec: 0
Name: 0 D: F: C: E:--------------------> HDD0
PercentDiskReadTime: 0
PercentDiskTime: 0
PercentDiskWriteTime: 0
PercentIdleTime: 100
SplitIOPerSec: 0

AvgDiskBytesPerRead: 1048576
AvgDiskBytesPerTransfer: 1048576
AvgDiskBytesPerWrite: 0
AvgDiskQueueLength: 1
AvgDiskReadQueueLength: 1
AvgDisksecPerRead: 0
AvgDisksecPerTransfer: 0
AvgDisksecPerWrite: 0
AvgDiskWriteQueueLength: 0
CurrentDiskQueueLength: 2
DiskBytesPersec: 37756348
DiskReadBytesPersec: 37756348
DiskReadsPersec: 36
DiskTransfersPersec: 36
DiskWriteBytesPersec: 0
DiskWritesPersec: 0
Name: 2 H:--------------------> HDD2
PercentDiskReadTime: 100
PercentDiskTime: 100
PercentDiskWriteTime: 0
PercentIdleTime: 1
SplitIOPerSec: 0

AvgDiskBytesPerRead: 0
AvgDiskBytesPerTransfer: 0
AvgDiskBytesPerWrite: 0
AvgDiskQueueLength: 0
AvgDiskReadQueueLength: 0
AvgDisksecPerRead: 0
AvgDisksecPerTransfer: 0
AvgDisksecPerWrite: 0
AvgDiskWriteQueueLength: 0
CurrentDiskQueueLength: 0
DiskBytesPersec: 0
DiskReadBytesPersec: 0
DiskReadsPersec: 0
DiskTransfersPersec: 0
DiskWriteBytesPersec: 0
DiskWritesPersec: 0
Name: 1 J:--------------------> HDD1
PercentDiskReadTime: 0
PercentDiskTime: 0
PercentDiskWriteTime: 0
PercentIdleTime: 100
SplitIOPerSec: 0

AvgDiskBytesPerRead: 1048576
AvgDiskBytesPerTransfer: 1048576
AvgDiskBytesPerWrite: 0
AvgDiskQueueLength: 1
AvgDiskReadQueueLength: 1
AvgDisksecPerRead: 0
AvgDisksecPerTransfer: 0
AvgDisksecPerWrite: 0
AvgDiskWriteQueueLength: 0
CurrentDiskQueueLength: 2
DiskBytesPersec: 37756348
DiskReadBytesPersec: 37756348
DiskReadsPersec: 36
DiskTransfersPersec: 36
DiskWriteBytesPersec: 0
DiskWritesPersec: 0
Name: _Total
PercentDiskReadTime: 55
PercentDiskTime: 55
PercentDiskWriteTime: 0
PercentIdleTime: 67
SplitIOPerSec: 0

DelTurbo 28. Apr 2013 15:17

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Ui, nun weiß ich garnicht was ich sagen soll, ausser vielen vielen dank.

Und dann gleich noch eine frage hinterher.... ist das diese unit, oder?

http://delphi-wmi-class-generator.go...ysicalDisk.pas

Gruß und nochmals vielen dank

hathor 28. Apr 2013 15:32

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Sieht brauchbar aus.
Ich teste es mal.

DelTurbo 28. Apr 2013 15:47

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Damit kann man irgendwie units erstellen. Genau hab ich das noch nicht kapiert.

https://code.google.com/p/delphi-wmi-class-generator/

DelTurbo 29. Apr 2013 08:12

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Ich habe eben eine kleine Demo gemacht. Leider ist die abfrage viel viel zu langsam. Schade, vielleicht gibt es ja nochwas anderes.....

OS ist Win7 32 Bit

hathor 30. Apr 2013 15:31

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Ich habe hier etwas Interessantes gefunden.
Man kann auch mehrere Instanzen starten, wenn man das Programm in mehrere Unterordner kopiert (wegen der INI-Config.)

Man kann unter verschiedenen Objekten auswählen, was man sichtbar machen möchte.

http://www.sepago.de/d/helge/2009/11...new-diskled-11

http://www.sepago.de/sites/default/files/DiskLED.zip

DelTurbo 30. Apr 2013 15:42

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Das ist total nett das du hilfst. Aber leider komme ich meinem prob nicht näher. Ich möchte das ja selber programmieren. Um z.b. auch eine Remotefunktion einzubauen.

Das mit dem WMI klappt, aber es ist leider viel zu langsam.

p80286 30. Apr 2013 16:24

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Zitat:

Zitat von DelTurbo (Beitrag 1213579)
Ich möchte das ja selber programmieren. Um z.b. auch eine Remotefunktion einzubauen.

Das mit dem WMI klappt, aber es ist leider viel zu langsam.

Remote und WMI ist zu langsam?

Ausserdem frag ich mich wofür das gut sein soll. Im Extremfall ist es ja so, das Windows einen Schreibauftrag bekommt und der erst einmal ein paar Sekunden durch das System irrt bevor die Daten auf die Platte geschrieben werden.
Ebenso gibt es ja auch Programme die ihre Disk-Aktivitäten erst entfalten wenn nichts auf dem System los ist. Wenn Du Dir also Disk-Aktivität anzeigen läßt, könnte es sein, daß Du zu "höflich" reagierst und zu lange auf deine Chance wartest.
Ansonsten empfehle ich Dir den nicht ganz einfachen Weg über die Performance Counter (siehe #8).

Gruß
K-H

DelTurbo 1. Mai 2013 09:43

AW: Festplatten zugriff sichbar machen (LED im Tray)
 
Zitat:

Zitat von p80286 (Beitrag 1213590)
Remote und WMI ist zu langsam?

Es soll mal per Remote sein. Getestet habe ich lokal. Bei abfragen alle 200ms merkt man das die systemleistung ganz gut hochgeht. Ausserdem ist es ja egal ob Windows erst was in den Cache nimmt oder nicht. Ich möchte ja abfragen wann "die LED" angeht (mal so platt ausgedrückt), also wann geschrieben bzw. gelesen wird. Egal ob das vorher 20 minuten im Cache war oder nicht.

Morphie 1. Mai 2013 10:12

AW: Festplattenzugriff sichtbar machen (LED im Tray)
 
Treiber schreiben ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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