usberkennung
Verfasst: 24.04.2010 17:54
hey jungs!
ich habe mir hier einige codefetzen aus dem forum zusammen gesucht und mir ein programm geschrieben welches usb devices erkennen soll!
alles schön und gut, das programm listet die sticks auf! aber wenn man einen neuen stick hinzufügt wird dieser nicht in die liste eingefügt ):
wenn ich einen stick entferne soltle der debugger eigentlich ein "changed" ausspucken, er tut dies aber nur bei meiner sd karte und nicht bei meinem stick oder meinem iPod ):
hier mein code!
ich hoffe ihr könnt mir helfen!
mfg deify
ich habe mir hier einige codefetzen aus dem forum zusammen gesucht und mir ein programm geschrieben welches usb devices erkennen soll!
alles schön und gut, das programm listet die sticks auf! aber wenn man einen neuen stick hinzufügt wird dieser nicht in die liste eingefügt ):
wenn ich einen stick entferne soltle der debugger eigentlich ein "changed" ausspucken, er tut dies aber nur bei meiner sd karte und nicht bei meinem stick oder meinem iPod ):
hier mein code!
Code: Alles auswählen
IncludeFile "wmi.pbi"
Global NewList devices.s(),NewList devicetype.s(),found = #False ,Exit = #False
Procedure usbErkennung(x)
WMI_INIT()
Repeat
WMI_Call("SELECT * FROM Win32_DiskDrive", "InterfaceType, Model, PNPDeviceID, MediaType, Name, Size, Status")
ResetList(wmidata())
device = 0
While NextElement(wmidata()) ; Wert 1
cur_Type.s = wmidata()
NextElement(wmidata()) ; Wert 2
cur_Model.s = wmidata()
NextElement(wmidata()) ; Wert 3
cur_PNPDeviceID.s = wmidata()
NextElement(wmidata()) ; Wert 4
cur_Media.s = wmidata()
NextElement(wmidata()) ; Wert 5
cur_Name.s = wmidata()
NextElement(wmidata()) ; Wert 6
cur_Size.f = ValF(wmidata())
cur_Size.f = cur_Size.f / 1024 ; kbytes
cur_Size.f = cur_Size.f / 1024 ; mbytes
;cur_Size.f = cur_Size.f / 1024 ; gbytes
NextElement(wmidata()) ; Wert 7
cur_State.s = wmidata()
If SelectElement(devices(),device) And devices() = cur_PNPDeviceID And SelectElement(devicetype(),device) And devicetype() <> cur_Media
Debug "changed"
devicetype() = cur_Media
EndIf
ResetList(devices())
While NextElement(devices())
If devices() = cur_PNPDeviceID
found = #True
Break
EndIf
Wend
If Not found
AddElement(devices())
AddElement(devicetype())
devices() = cur_PNPDeviceID
devicetype() = cur_Media
EndIf
If cur_Media <> "n/a" And Not found
AddGadgetItem(0,-1,cur_Type+Chr(10)+cur_Model+Chr(10)+cur_PNPDeviceID+Chr(10)+cur_Media+Chr(10)+cur_Name+Chr(10)+Str(cur_Size)+" Mb"+Chr(10)+cur_State)
found = 0
EndIf
device +1
Wend
Until Exit
WMI_RELEASE("OK")
EndProcedure
If OpenWindow(0, 100, 100, 700, 300, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0, 5, 5, 690, 290, "Interface Type", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 2, "Model",100)
AddGadgetColumn(0, 3, "PNP Device-ID",100)
AddGadgetColumn(0, 4, "Media Type",100)
AddGadgetColumn(0, 5, "Name",100)
AddGadgetColumn(0, 6, "Size",100)
AddGadgetColumn(0, 7, "Status",86)
CreateThread(@usbErkennung(),0)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Exit = #True
EndIf
mfg deify