AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Erkennen, ob USB-Stick oder SD-Card eingesteckt oder herausgenommen?
Thema durchsuchen
Ansicht
Themen-Optionen

Erkennen, ob USB-Stick oder SD-Card eingesteckt oder herausgenommen?

Ein Thema von AlexII · begonnen am 30. Jun 2015 · letzter Beitrag vom 4. Jul 2015
 
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Erkennen, ob USB-Stick oder SD-Card eingesteckt oder herausgenommen?

  Alt 1. Jul 2015, 08:44
Danke Dir, so sieht's nun aus:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  dbi: DEV_BROADCAST_DEVICEINTERFACE_W;
  dbv: DEV_BROADCAST_VOLUME;
  Size: Integer;
  RDN: HDEVNOTIFY;
  arr : array[0 .. 0] of word;
begin
  arr[0] := 0;
  Size := SizeOf(DEV_BROADCAST_DEVICEINTERFACE_W);
  ZeroMemory(@dbi, Size);
  dbi.dbcc_size := Size;
  dbi.dbcc_devicetype := DBT_DEVTYP_DEVICEINTERFACE;
  dbi.dbcc_reserved := 0;
  dbi.dbcc_classguid := GUID_DEVINTERFACE_USB_DEVICE;
  dbi.dbcc_name := arr;
  RDN := RegisterDeviceNotificationW(Self.Handle, @dbi, DEVICE_NOTIFY_WINDOW_HANDLE);
  if not Assigned(RDN) then
    ShowMessage('1: ' + SysErrorMessage(GetLastError));

  Size := SizeOf(DEV_BROADCAST_VOLUME);
  ZeroMemory(@dbv, Size);
  dbv.dbcv_size := Size;
  dbv.dbcv_devicetype := DBT_DEVTYP_VOLUME;
  dbv.dbcv_reserved := 0;
  dbv.dbcv_flags := 0;
  RDN := RegisterDeviceNotification(Self.Handle, @dbv, DEVICE_NOTIFY_WINDOW_HANDLE);
  if not Assigned(RDN) then
    ShowMessage('2: ' + SysErrorMessage(GetLastError));

  OldWndProc := TMWndProc(Windows.GetWindowLong(Self.Handle, GWL_WNDPROC));
  Windows.SetWindowLong(Self.Handle, GWL_WNDPROC, LongInt(@MyWndProc));
end;

Die Zeile
Zitat:
ShowMessage('2: ' + SysErrorMessage(GetLastError));
gibt nun folgendes aus:

Zitat:
Der Dienst hat einen dienstspezifischen Fehlercode zurückgegeben
Was heiß das eigentlich? Also ein Fehler ist es nicht, oder?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
 


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 02:14 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