vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: ist usb-gerät angesteckt? 
Autor: Drapondur
Datum: 23.02.07 19:07

Okay,

ich habe das ganze umgeschieben, da ich dieses ständige SetupDiDestroyDeviceInfoList(handle) blöd fand.
Außerdem habe ich die Abfragen
If Not GetLastError() = &H103 And Not GetLastError() = &H7E
gekürzt auf
If errNum = ERROR_NO_MORE_ITEMS
da von einem anderen Fehler im SDK nicht die Rede ist.
Außerdem geht der Code nur bis SetupDiEnumDeviceInterfaces
aber bis dahin funktioniert er. Wenigstens in dem Sinn,
das keine Execptions kommen und als einziger Api-Error
der erwartete ERROR_NO_MORE_ITEMS.

Ferner habe ich
DIGCF_PRESENT Or DIGCF_DEVICEINTERFACE
in
DIGCF_ALLCLASSES
abgeändert, da ja bei mir kein Device präsent ist.

Code Teil 1
Imports System.Runtime.InteropServices
 
Public Class Form1
	Private Declare Function GetLastError Lib "kernel32.dll" () As Int32
	Private Declare Function SetupDiEnumDeviceInfo Lib "setupapi.dll" (ByVal _
  DeviceInfoSet As Int32, ByVal MemberIndex As Int32, _
	 ByRef DeviceInfoData As DeviceInfoData) As Boolean
	Private Declare Function SetupDiDestroyDeviceInfoList Lib "setupapi.dll" ( _
  ByRef DeviceInfoSet As Int32) As Int32
	Private Declare Function SetupDiGetClassDevs Lib "setupapi.dll" Alias _
"SetupDiGetClassDevsA" (ByRef ClassGuid As Guid, ByVal _
	 Enumerator As String, ByVal hwndParent As Int32, ByVal Flags As Int32) As _
Int32
	Private Declare Function SetupDiEnumDeviceInterfaces Lib "setupapi.dll" ( _
	 ByVal DeviceInfoSet As Int32, _
	 ByRef DeviceInfoData As DeviceInfoData, _
	 ByRef ByRefterfaceClassGuid As Guid, _
	 ByVal MemberIndex As Integer, _
	 ByRef DeviceInterfaceData As DeviceInterfaceData) As Boolean
 
	Private Declare Function SetupDiGetDeviceInterfaceDetail Lib "setupapi.dll" _
  Alias "SetupDiGetDeviceInterfaceDetailA" (ByRef _
	 DeviceInfoSet As Int32, ByRef DeviceInterfaceData As DeviceInterfaceData, _
ByRef DeviceInterfaceDetailData As DeviceInterfaceDetailData, ByVal unused1 As _
Integer, _
	 ByRef RequiredSize As Int32, ByRef unused3 As Integer) As Boolean
	Private Declare Function SetupDiGetDeviceInterfaceDetail Lib "setupapi.dll" _
  Alias "SetupDiGetDeviceInterfaceDetailA" (ByRef _
	  DeviceInfoSet As Int32, ByRef DeviceInterfaceData As DeviceInterfaceData, _
ByRef DeviceInterfaceDetailData As Integer, ByVal unused1 As Integer, _
	  ByRef RequiredSize As Int32, ByRef unused3 As Integer) As Boolean
	Private Declare Sub HidD_GetHidGuid Lib "hid.dll" Alias "HidD_GetHidGuid" ( _
  ByRef hid_guid As System.Guid)
 
	Private Const DIGCF_ALLCLASSES As Int32 = &H4
	Private Const DIGCF_DEVICEINTERFACE As Int32 = &H10
	Private Const DIGCF_PRESENT As Int32 = &H2
	Private Const DIGCF_PROFILE As Int32 = &H8
 
<Runtime.InteropServices.StructLayout( _
  Runtime.InteropServices.LayoutKind.Sequential)> Private Structure _
  DeviceInterfaceDetailData
		Public Size As Integer
 
		'[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
		Public DevicePath As String
	End Structure
 
	<Runtime.InteropServices.StructLayout( _
  Runtime.InteropServices.LayoutKind.Sequential)> Private Structure _
  DeviceInfoData
		Public Size As Integer
		Public Classs As Guid
		Public DevInstas As Integer
		Public Reserved As Integer
	End Structure
 
	<Runtime.InteropServices.StructLayout( _
  Runtime.InteropServices.LayoutKind.Sequential)> Private Structure _
  DeviceInterfaceData
		Public Size As Integer
		Public Classs As Guid
		Public Flags As Integer
		Public Reserved As Integer
	End Structure
 
	Const ERROR_NO_MORE_ITEMS As Int32 = &H103
 
	Private Const FORMAT_MESSAGE_FROM_SYSTEM As Int32 = &H1000
 
	Private Declare Function FormatMessage Lib "kernel32.dll" Alias _
  "FormatMessageA" ( _
	  ByVal dwFlags As Int32, _
	  ByVal lpSource As Int32, _
	  ByVal dwMessageId As Int32, _
	  ByVal dwLanguageId As Int32, _
	  ByVal lpBuffer As System.Text.StringBuilder, _
	  ByVal nSize As Int32, _
	  ByRef Arguments As Int32) As Int32
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ist usb-gerät angesteckt?5.169Kriechi21.02.07 17:10
Re: ist usb-gerät angesteckt?2.785Kriechi21.02.07 17:11
Re: ist usb-gerät angesteckt?2.747Drapondur21.02.07 18:35
Re: ist usb-gerät angesteckt?2.752Kriechi22.02.07 16:18
Re: ist usb-gerät angesteckt?2.707Drapondur22.02.07 16:34
Re: ist usb-gerät angesteckt?2.769Kriechi22.02.07 16:42
Re: ist usb-gerät angesteckt?2.698Drapondur22.02.07 17:00
Re: ist usb-gerät angesteckt?2.778Kriechi22.02.07 17:06
Re: ist usb-gerät angesteckt?2.929Kriechi22.02.07 17:25
Re: ist usb-gerät angesteckt?2.696Drapondur22.02.07 17:45
Re: ist usb-gerät angesteckt?2.722Kriechi22.02.07 18:57
Re: ist usb-gerät angesteckt?2.634Drapondur23.02.07 01:06
Re: ist usb-gerät angesteckt?2.835Kriechi23.02.07 09:49
Re: ist usb-gerät angesteckt?2.680Drapondur23.02.07 15:00
Re: ist usb-gerät angesteckt?2.724Kriechi23.02.07 16:11
Re: ist usb-gerät angesteckt?2.705Drapondur23.02.07 18:18
Re: ist usb-gerät angesteckt?2.671Kriechi23.02.07 18:33
Re: ist usb-gerät angesteckt?2.820Drapondur23.02.07 19:07
Re: ist usb-gerät angesteckt?2.748Drapondur23.02.07 19:08
Re: ist usb-gerät angesteckt?2.737Kriechi24.02.07 10:26

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel