vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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: Kriechi
Datum: 23.02.07 09:49

ok, nun bekomm ich nen fehler , das im geschützen speicher gelsen/geschrieben wird...

ich hab gerade den source gefunden, der ist in, naja keine ahnung , c# vll.
irgendetwas passt noch nicht zusammen.
hier der source:

string FindDevice(Guid classGuid)
{
IntPtr handle = SetupDiGetClassDevs(ref classGuid, 0, 0, 0x12); // DIGCF_PRESENT or DIGCF_DEVICEINTERFACE

if (handle.ToInt32() == -1)
throw new Exception(string.Format("Failed in call to SetupDiGetClassDevs ({0})", GetLastError()));

string devicePath = null;

for (int deviceIndex = 0; ; deviceIndex++)
{
DeviceInfoData deviceInfoData = new DeviceInfoData();
deviceInfoData.Size = Marshal.SizeOf(deviceInfoData);

if (SetupDiEnumDeviceInfo(handle, deviceIndex, ref deviceInfoData) == false)
{
// out of devices or do we have an error?
if (GetLastError() != 0x103 && GetLastError() != 0x7E)
{
SetupDiDestroyDeviceInfoList(handle);
throw new Exception(string.Format("Failed in call to SetupDiEnumDeviceInfo ({0})", GetLastError()));
}

SetupDiDestroyDeviceInfoList(handle);
break;
}

DeviceInterfaceData deviceInterfaceData = new DeviceInterfaceData();
deviceInterfaceData.Size = Marshal.SizeOf(deviceInterfaceData);

if (SetupDiEnumDeviceInterfaces(handle, ref deviceInfoData, ref classGuid, 0, ref deviceInterfaceData) == false)
{
SetupDiDestroyDeviceInfoList(handle);
throw new Exception(string.Format("Failed in call to SetupDiEnumDeviceInterfaces ({0})", GetLastError()));
}

uint cbData = 0;

if (SetupDiGetDeviceInterfaceDetail(handle, ref deviceInterfaceData, 0, 0, ref cbData, 0) == false && cbData == 0)
{
SetupDiDestroyDeviceInfoList(handle);
throw new Exception(string.Format("Failed in call to SetupDiGetDeviceInterfaceDetail ({0})", GetLastError()));
}

DeviceInterfaceDetailData deviceInterfaceDetailData = new DeviceInterfaceDetailData();
deviceInterfaceDetailData.Size = 5;

if (SetupDiGetDeviceInterfaceDetail(handle, ref deviceInterfaceData, ref deviceInterfaceDetailData, cbData, 0, 0) == false)
{
SetupDiDestroyDeviceInfoList(handle);
throw new Exception(string.Format("Failed in call to SetupDiGetDeviceInterfaceDetail ({0})", GetLastError()));
}

if (deviceInterfaceDetailData.DevicePath.IndexOf("vid_045e&pid_0284") != -1)
{
SetupDiDestroyDeviceInfoList(handle);
devicePath = deviceInterfaceDetailData.DevicePath;
break;
}
}

return devicePath;
}

mit diesen deklerationen:
[DllImport("hid")]
protected static extern void HidD_GetHidGuid(ref Guid guid);

[DllImport("setupapi", SetLastError = true)]
protected static extern IntPtr SetupDiGetClassDevs(ref Guid guid, int Enumerator, int hwndParent, int Flags);

[DllImport("setupapi", SetLastError = true)]
protected static extern bool SetupDiEnumDeviceInfo(IntPtr handle, int Index, ref DeviceInfoData deviceInfoData);

[DllImport("setupapi", SetLastError = true)]
protected static extern bool SetupDiEnumDeviceInterfaces(IntPtr handle, ref DeviceInfoData deviceInfoData, ref Guid guidClass, int MemberIndex, ref DeviceInterfaceData deviceInterfaceData);

[DllImport("setupapi", SetLastError = true)]
protected static extern bool SetupDiGetDeviceInterfaceDetail(IntPtr handle, ref DeviceInterfaceData deviceInterfaceData, int unused1, int unused2, ref uint requiredSize, int unused3);

[DllImport("setupapi", SetLastError = true)]
protected static extern bool SetupDiGetDeviceInterfaceDetail(IntPtr handle, ref DeviceInterfaceData deviceInterfaceData, ref DeviceInterfaceDetailData deviceInterfaceDetailData, uint detailSize, int unused1, int unused2);

[DllImport("setupapi")]
protected static extern bool SetupDiDestroyDeviceInfoList(IntPtr handle);

Wer fr?her stirbt ist l?nger tot!

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ist usb-gerät angesteckt?5.145Kriechi21.02.07 17:10
Re: ist usb-gerät angesteckt?2.750Kriechi21.02.07 17:11
Re: ist usb-gerät angesteckt?2.733Drapondur21.02.07 18:35
Re: ist usb-gerät angesteckt?2.737Kriechi22.02.07 16:18
Re: ist usb-gerät angesteckt?2.695Drapondur22.02.07 16:34
Re: ist usb-gerät angesteckt?2.738Kriechi22.02.07 16:42
Re: ist usb-gerät angesteckt?2.684Drapondur22.02.07 17:00
Re: ist usb-gerät angesteckt?2.761Kriechi22.02.07 17:06
Re: ist usb-gerät angesteckt?2.916Kriechi22.02.07 17:25
Re: ist usb-gerät angesteckt?2.680Drapondur22.02.07 17:45
Re: ist usb-gerät angesteckt?2.707Kriechi22.02.07 18:57
Re: ist usb-gerät angesteckt?2.622Drapondur23.02.07 01:06
Re: ist usb-gerät angesteckt?2.821Kriechi23.02.07 09:49
Re: ist usb-gerät angesteckt?2.663Drapondur23.02.07 15:00
Re: ist usb-gerät angesteckt?2.711Kriechi23.02.07 16:11
Re: ist usb-gerät angesteckt?2.685Drapondur23.02.07 18:18
Re: ist usb-gerät angesteckt?2.657Kriechi23.02.07 18:33
Re: ist usb-gerät angesteckt?2.807Drapondur23.02.07 19:07
Re: ist usb-gerät angesteckt?2.736Drapondur23.02.07 19:08
Re: ist usb-gerät angesteckt?2.724Kriechi24.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