Seite 1 von 1

USB Laufwerksbuchstaben rausbekommen

Verfasst: 09.05.2005 22:34
von Dristar
Hallo !!

zwei Fragen habe ich.Die erste wäre wie bekomme ich den Laufwerksbuchstaben von meinem USB stick raus ??? Mein Progi macht
nur allgemein die geräte wechsel mit.

edit: getestet unter XP Home Edition mit einem JetFlash 512MB

Code: Alles auswählen

;coded by Dristar 2005
#DEVICE_NOTIFY_WINDOW_HANDLE   = 0
#DEVICE_NOTIFY_SERVICE_HANDLE  = 1
#WM_DEVICECHANGE               = $219
#DBT_DEVTYP_DEVICEINTERFACE    = 5
#DBT_MONITORCHANGE = $1B
#DBT_DEVICEARRIVAL             = $8000
#DBT_DEVICEQUERYREMOVE         = $8001
#DBT_DEVICEQUERYREMOVEFAILED   = $8002
#DBT_DEVICEREMOVEPENDING       = $8003
#DBT_DEVICEREMOVECOMPLETE      = $8004
#DBT_DEVICETYPESPECIFIC        = $8005

Global Device.DEV_BROADCAST_HDR
Procedure WindowsCallback(WindowID, Message, wParam, lParam)
;Debug Message
;Debug wParam
;Debug lParam
;gg = RegisterDeviceNotification_(WindowID,lParam,#DEVICE_NOTIFY_WINDOW_HANDLE)

   If (Message = #WM_DEVICECHANGE)
     If (wParam = #DBT_DEVICEARRIVAL)
        AddGadgetItem(1,0,"Ein neues Gerät wurde hinzugefügt :"+Str(gg),0)
     EndIf
     If (wParam = #DBT_DEVICEREMOVECOMPLETE)
       AddGadgetItem(1,0,"Gerät wurde entfernt :"+Str(gg),0)

     EndIf
     If (wParam = #DBT_DEVTYP_DEVICEINTERFACE)
     AddGadgetItem(1,0,Str(lParam),0)

         EndIf 
    ProcedureReturn #True
   Else
    ProcedureReturn #PB_ProcessPureBasicEvents
   EndIf
EndProcedure 


OpenWindow(0,0,0,350,220,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Message V1.0 by Dreisat")
    CreateGadgetList(WindowID())
     ListViewGadget(1, 10, 20, 330, 160)
   
   ;handle=GetActiveWindow_()
SetWindowCallback(@WindowsCallback())
Repeat
   EventID = WaitWindowEvent()
         Select EventID
   EndSelect
Until EventID = #PB_Event_CloseWindow
Das zweite wie kann ich mein Progi so machen das es neben der Uhr ist ?? :?

mfg Dristar

Verfasst: 09.05.2005 22:45
von Icke
Also bei mir funzt net, aber ich steig auch durch den Code nicht durch. W2k mit Stick oder Wechselplatte an USB2.

Ansonsten für Systray einfach mal in die Hilfe schaun ...

Code: Alles auswählen

AddSysTrayIcon
ChangeSysTrayIcon
IsSysTrayIcon
RemoveSysTrayIcon
SysTrayIconTooltip

Verfasst: 10.05.2005 01:06
von Dristar
@Icke

Danke erstmal :) . Das mit dem code oben kann sein das es unter
W2k nicht leuft aber #WM_DEVICECHANGE müste auch unter W2k laufen.
Hast du schonmal die ";" bei debug rausgenommen und geschaut was ankommt ?
Es soll so laufen: wenn eine neues gerät angesteckt wird , wird von windows eine allgemeine message an all on Top windows geschickt (#WM_DEVICECHANGE) .Im wParam sind dann die messages die auskunft geben was gerade passiert ist (naja so in etwa :roll: ).


Das mit den

Code: Alles auswählen

AddSysTrayIcon
ChangeSysTrayIcon
IsSysTrayIcon
RemoveSysTrayIcon
SysTrayIconTooltip 
finde ich so blöde :( ... gibt es denn keine möglichkeit die ".ico" mit pointern zu laden ? und das es später ohne windows fenster leuft ?

mann ich mit meinen Fragen :roll:

mfg Dristar