J'utilise la classe TJvHidDeviceController pour récupérer les informations du périphérique HID. J'ai branché deux dispositifs HID, mais j'essaye de ge le "DevicePath" de la structure SP_DEVICE_INTERFACE_DETAIL_DATA_A obtenant toujours le chemin de dispositif comme '\'. Donc, je ne peux pas ouvrir la fonction CreateFile. S'il vous plaît aidez-moi à résoudre ce problème. Mon OS win7. Merci à tous.TJvHidDeviceController "DevicePath" affichant toujours ""
Répondre
Ceci est une estimation!
La seule chose que je peux penser est:
TJvHidDeviceController appelle un appel API Windows sans l'aide d'un A ou un suffixe W. La structure utilisée est SP_DEVICE_INTERFACE_DETAIL_DATA_A, la version ANSI. Maintenant, si vous utilisez Delphi 2009 ou supérieur, la routine attend SP_DEVICE_INTERFACE_DETAIL_DATA_W. la taille est la même, donc tout a l'air OK. Mais les chaînes stockées seront codées en USC2 (WideChars) au lieu de codées ANSI -> après chaque caractère ANSI, il y aura un octet nul. TJvHidDeviceController convertit probablement le tableau de caractères en une chaîne pascal en utilisant une fonction comme StrPas et par conséquent, vous ne voyez que le premier caractère.
Vérification: Définissez un point d'arrêt juste après l'appel de fonction qui remplit la structure et utilisez la fenêtre de la CPU pour afficher le contenu en tant que vidage de la mémoire. Si vous voyez des caractères ANSI tous les autres octets et octets nuls entre, vous pouvez confirmer que le scénario ci-dessus est le cas.
Solution:
- Vérifiez si l'appel utilise la variante large et changer la structure en conséquence.
- Vérifiez si l'appel utilise la variante large et utilisez plutôt la variante A. C'est probablement l'option la plus facile.
Ce n'est pas seulement deviner. Il n'a pas dit s'il utilise Unicode Delphi (2009+) ou une ancienne version Ansi Delphi. –
@Warren: c'est juste une partie de la conjecture ;-). –
Bonjour à tous, Oui, j'utilise Delphi2010. J'ai changé le suffixe "A" en "W". maintenant ça marche bien. Obtenir maintenant toutes les informations sur le périphérique HID. Merci beaucoup. Cela m'aide beaucoup. Encore merci...:) –
- 1. Barre d'état affichant toujours
- 2. Netbeans affichant toujours le dossier racine
- 3. Comment obtenir la lettre de lecteur pour le DevicePath
- 4. locationServicesEnabled dans iOS> 4.0 affichant toujours UIAlert
- 5. Iframe affichant toujours les barres de défilement dans IE7
- 6. Liste déroulante Extjs affichant toujours le premier élément sélectionné
- 7. Variable affichant comme NaN
- 8. affichant des nombres aléatoires
- 9. Validation Knockout dans la liste déroulante affichant toujours le message d'erreur
- 10. iOS SDK affichant un lien et affichant une vignette
- 11. Redirections HTTP affichant l'adresse IP
- 12. iTextSharp affichant des caractères grecs
- 13. Export Excel affichant '##### ...'
- 14. Vue partielle affichant l'erreur
- 15. Javascript affichant un div
- 16. asp.net mvc C# affichant \
- 17. L'image d'adrotator affichant
- 18. Django ascii d'erreur affichant
- 19. Devise affichant l'avertissement
- 20. affichant une photo?
- 21. Navigateur affichant "Directory Listing - /"
- 22. Problème Jquery/ajax affichant
- 23. DBNull affichant une erreur
- 24. affichant IMAGE IN ASP.NET
- 25. C# affichant la requête
- 26. AngularJS affichant HTML Unicode
- 27. Texte JFrame affichant mal
- 28. variableReplace affichant une erreur
- 29. PHP affichant tableau multidimensionnel
- 30. ftp_chdir() affichant les avertissements
Si vous exécutez votre application avec tous les droits d'administrateur, le problème persiste-t-il? Avez-vous utilisé une version plus récente de Delphi où Char est égal à WideChar au lieu de AnsiChar? –
Quelle version de Delphi? Quelle version de Windows? –
@Jeroen: Dans une autre question utilisateur602714 a déclaré: http://stackoverflow.com/questions/4895179/how-to-programmatically-change-tablet-pc-orientation (J'utilise Delphi 2010) –