![]() |
Ermitteln welches Gerät verbunden wurde
Hallo,
ich habe im Moment ein kleines Problem mit meinem PC. In bestimmten Situationen wird mein System instabil und beginnt in regelmäßigen abständen einzufrieren. Dies lässt sich nur durch ein neu starten des Systems beheben. Allerdings höre ich jedes mal bevor dies beginnt den Windows-sound das ein Gerät getrennt und wieder verbunden wurde. Ich könnte mir also vorstellen das ich ein defektes Gerät am oder im PC habe. Jetzt hat Windows keine vernünftige Funktion ein Log zu erstellen welche Geräte getrennt und verbunden wurden. Daher will ich das jetzt mit einem kleinen Delphi Programm selbst erledigen. Wie kann ich einfach nur (am liebsten als String) angezeigt bekommen, welche Hardware verbunden oder getrennt wurde? Ich habe bereits gelesen das dies mit WM_DEVICECHANGE, DBT_DEVICEARRIVAL und DBT_DEVICEREMOVECOMPLETE möglich sein soll, allerdings bin ich längst nicht gut genug im Programmieren um zu verstehen wie ich diese funktionen nutzen kann. Mit diesem Code hier kann ich schon auf das ereignis reagieren, allerdings habe ich keinerlei informationen was für ein Gerät es ist:
Code:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; type TForm1 = class(TForm) private procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMDeviceChange(var Msg: TMessage); const DBT_DEVICEARRIVAL = $8000; // system detected a new device DBT_DEVICEREMOVECOMPLETE = $8004; // device is gone var myMsg: string; begin inherited; case Msg.wParam of DBT_DEVICEARRIVAL: myMsg := 'Verbunden'; DBT_DEVICEREMOVECOMPLETE: myMsg := 'Getrennt'; end; ShowMessage(myMsg); end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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