Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Änderungen an Druckeren erkennen (neu, gelöscht)

  Alt 21. Jul 2023, 12:13
Probiers mal mit WM_DEVICECHANGE. Dann über den Devicenamen prüfen, ob die Änderung relevant ist (auch USB beachten!)

Code:
   if DeviceName.StartsWith('\\?\HID#') then
    begin
      // Ein HID-Gerät wurde ein-/ausgehängt, das kann ein Digitizer sein:
      // Flag setzen, sodass wir via Timer die Geräte neu einlesen können.
      _ProcessDeviceChange(paASHIDDeviceChanged);
    end else
    if DeviceName.StartsWith('\\?\USB#') then
    begin
      // Ein USB-Gerät wurde ein-/ausgehängt: Flag setzen, sodass wir OnIdle die Geräte neu einlesen können.
      _ProcessDeviceChange(paASUsbDeviceChanged);
    end
    else if DeviceName.StartsWith('\\?\SWD#PRINTENUM') then
    begin
      // Ein Drucker wurde neu eingerichtet oder gelöscht: Druckerliste aktualisieren.
      _ProcessDeviceChange(paASPrinterDeviceChanged);
    end;
Danke! WM_DEVICECHANGE wird ausgelößt. Dabei ist da Message.WParam immer 7 und Message.LParam ist immer 0. Wie komme ich damit auf "DeviceName" für
Code:
DeviceName.StartsWith('\\?\SWD#PRINTENUM')
  Mit Zitat antworten Zitat