Hallo, Ich nutze Visual C+ 2008 Express und habe das Problem, dass bei meiner Software die WM_DEVICECHANGE-Nachrichten für ein HID-Gerät unter Windows 7 nicht ankommen. Mit Windows XP und Vista funktioniert es einwandfrei. Ich habe die Anwendung jeweils komplett unter dem entsprechenden Betriebssystem neu kompiliert. Kann mir da jemand weiterhelfen? Gruß Sam
Hier funktioniert das auch unter Windows 7. Ich nehme an, dass Du bei Registrieren noch irgendetwas falsch machst. Bekommst Du denn überhaupt ein gültiges Handle (<- HDEVNOTIFY) geliefert?
Hallo Rene, ich war etwas voreilig. Der Fehler (wenn's denn einer war) lag daran, dass die Struktur PDEV_BROADCAST_DEVICEINTERFACE für dbcc_name (hier steht die GUID) unter Windows 7 alles als Upper-Case zurück gibt und XP/Vista als Lower-Case. Wenn ich also mit strstr() PID/VID/INTF vergleiche, dann kann er ja nichts finden. Ich habe das jetzt mit ... if (isupper()) .. tolower() ... gleichgeschaltet. Die Frage bleibt: Warum einmal Upper- und einmal Lower-Case? Liegt das an den Projekteinstelungen von VC++ (ich teste momentan für XP/Vista bzw. Windows 7 auf zwei verschiedenen Rechnern mit zwei verschiedenen Projekten)? Gruß Sam
Sam schrieb: > Die Frage bleibt: Warum einmal Upper- und einmal Lower-Case? Liegt das Das ist eine gute Frage, darauf bin ich auch schon mal hereingefallen. Ich hatte hier auf ein und dem selben Rechner mal die eine, mal die andere Variante. Das aber auch schon unter W2K und XP. Um aber nur VID, PID und Version zu prüfen, würde ich den String nicht anfassen. Öffne das Gerät mit CreateFile und rufe dann HidD_GetAttributes auf. Damit wäre dieses Problem auch gar nicht erst aufgetaucht. :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.