CD eingelegt ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Falko hat geschrieben:Hiermit müsste das gehen. Wenn jemand das von VB nach PB
Portieren könnte wäre sehr nett. :shock: [...]

Code: Alles auswählen

#DBT_DEVICEARRIVAL        = $8000
#DBT_DEVICEREMOVECOMPLETE = $8004
#DBT_DEVTYP_VOLUME        = $0002

Procedure.s GetDevice(Bits) 
  For i = 'A' To 'Z' 
    If Bits & 1 = 1
      Laufwerk.s = Chr(i)
    EndIf
    Bits = Bits >> 1 
  Next
  ProcedureReturn Laufwerk
EndProcedure

Procedure CB(hwnd,msg,wParam,lParam)
  
  Protected *db.DEV_BROADCAST_HDR
  Protected *dbv.DEV_BROADCAST_VOLUME
  
  If msg = #WM_DEVICECHANGE
    Select wParam 
      Case #DBT_DEVICEARRIVAL        
        
        *db = lParam 
        
        If *db\dbch_devicetype = #DBT_DEVTYP_VOLUME 
          *dbv = *db 
          Laufwerk.s = GetDevice(*dbv\dbcv_unitmask) + ":" 
          Debug Laufwerk  + " = insert Media"
        EndIf
        
      Case #DBT_DEVICEREMOVECOMPLETE
        
        *db = lParam 
        
        If *db\dbch_devicetype = #DBT_DEVTYP_VOLUME
          *dbv = *db 
          Laufwerk.s = GetDevice(*dbv\dbcv_unitmask) + ":" 
          Debug Laufwerk + " = remove Media"
        EndIf 
        
    EndSelect
    ProcedureReturn 1
  EndIf
  
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

hwnd = OpenWindow(0,#PB_Ignore,#PB_Ignore,200,200,"")

SetWindowCallback(@CB(),0)

Repeat : Until WaitWindowEvent() = #WM_CLOSE

Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

@edel,
danke für die Portierung :allright: . Mein USB-Stick wird damit sofort erkannt.
Meine CD-ROM-Laufwerke nicht, dal die Autofunktion bei mir durch XP-Antispy ausgeschaltet ist.

Grüße ...Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten