Soucis

Résolu
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011 - 22 août 2008 à 18:57
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 23 août 2008 à 21:43
Bonjour,

sachant que idVendor:0x0256 = &H256
idProduct:0x0789 = &H789
A votre avis que me donne ??? :
idVendor:0xFFFF
idProduct:0xFFFF

Merci d'avance

41 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 00:06
salut,

le & est bien pour signaler un long

par exemple le type (vartype) de 10 retournera un integer(2), contre 10& qui retournera un long(3)

on peut stoquer la variable en hexa ou en décimal

'idVendor:0x0256
Private Const idVendor1 As Long = &H256&
Private Const idVendor2 As Long = 598&

'idProduct:0x0789
Private Const idProduct1 As Long = &H789&
Private Const idProduct2 As Long = 1929&

'idOther:0xFFFF
Private Const idOther1 As Long = &HFFFF&
Private Const idOther2 As Long = 65535

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 août 2008 à 19:43
Je ne sais pas ce que tu fais exactement dans ton code, mais je présume que tu veux faire, à moment donné, un test sur l'id du périphérique connecté pour savoir s'il correspond à l'un des trois cas attendus.

Dans ce cas il te faudra faire 3 tests pour tester l'id avec chacun des cas. Un truc du genre :

If VID=VendorID1 and PID=ProductID1 Then
....
Else If  VID=VendorID2 and PID=ProductID2 then
...
Else If VID=VendorID3 and PID=ProductID3 then
...
Else
    Msgbox "Pas le bon périf"
End If

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
22 août 2008 à 19:35
Bonjour

Pardon ?

Réexplique ! (commente chaque ligne de ton code) ...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
22 août 2008 à 19:36
Que sont ces ":" ? du code ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
22 août 2008 à 19:40
les : sont des indications USB rien d'important en fait il sagit d'une convertion a effectuer 0x0 = &H en VB donc je cherche a savoir ce que me donne
0xF
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
22 août 2008 à 19:56
Salut,
Aucune conversion à faire, ce n'est que la notation qui change (du C au VB) :

0x0256 = &H256
0x0789 = &H789
donc
0xFFFF = &hFFFF
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
22 août 2008 à 20:00
Merci kevin j'ai essayé mais si je fait ca il ne me detecte pas mon materiel usb
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 août 2008 à 20:29
Attention, &hFFFF en VB6 doit être mis dans un Long, le type Integer en VB étant signé il ne dépasse pas &h7FFF soit 32767 en décimal

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 août 2008 à 20:31
Ouppsss, c'est vendredi et je dit des conneries

&HFFFF est possible en VB6 dans un Integer, c'est tout simplement égal à -32768 en décimal.

Dsl, j'ai répondu trop vite.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
22 août 2008 à 20:47
je fait comment pour le declarer svp ? dsl je debute :)
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
22 août 2008 à 20:54
si je fait VendorID = &HFFFF& ca marche nickel
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
22 août 2008 à 20:55
ha non dsl je dit des conneries aussi.Comment fait on SVP ??
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 août 2008 à 21:08
Si tu utilise un Long essaye peut-etre &h0FFFF& pour bien forcer à FFFF et non pas FFFFFFFF comme fait parfois VB
 
---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
22 août 2008 à 21:16
ok mais le soucis c'est que je ne sais pas comment m'y prendre pour decle=arer ce genre de truc.
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
22 août 2008 à 21:23
Rien de spécial:

Dim Address As Integer
Address = &hFFFF

Ou avec un Long comme le conseil Casy:
Dim Address As Long
Address = &h0FFFF

Casy> C'est normal le & à la fin de "&h0FFFF&" ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
22 août 2008 à 21:38
Je ne saurais pas te dire dans le cas présent, il faudrait faire des essais (ha que c'est de plus en plus loin VB6 )

C'est parfois nécessaire pour préciser le type de la constante, je ne sais plus si c'est avec des Long ou des doubles quand tu veux affecter des constantes à une variable car sinon VB6 te jette une erreur car sans indication, la constante prend un type par défaut qui peut ne pas correspondre au type de la variable.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
22 août 2008 à 21:43
OK merci
Pour moi aussi c'est très loins, et de plus j'ai jamais vraiment bien maitrisé ^^
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 00:16
Bonsoir,
Alors que moi, j'ai jamais vraiment même pas essayer de bien maitriser


En tout cas, j' ai fait un test.
ça n' a peut être rien à voir, mais voilà:
Dans la page propriété d' un co ntrol, j' ai copié la valeur BackColor
(Blanc) = &H00FFFFFF&
et je l' ai collé dans le module d' un form.
En passant à la ligne (Enter) ma valeur devient 16777215


J' ai refait la même chose sur une autre ligne mais j' ai tapé
Const D =&H00FFFFFF&
Retour à la ligne et ça devient
Const D = &HFFFFFF


Surtout n' essayer pas de m' expliquer, je sais déjà que je ne comprenderais rien.

                 
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 00:53
^^
la couleur est un faux long.
en fait c'est un vrai LONG si , mais 'formaté', de type OLE_COLOR

après le "&H", les 0 ne sont pas comptabilisés

&H0000FF (ou &H0000FF&) devient &HFF

et l'IDE convertit seul l'hexa vers décimal (si ce n'est pas une commande) car il le prend comme un numéro de ligne, donc décimal
en effet toutes les lignes de code DANS une procédure peuvent être numérotées

exemple, avec explication (j'espère)

Option Explicit

Private Sub Form_Load()
10  Dim i As Integer
20  i = Test1
30  i = Test2
40  Unload Me
End Sub

Private Function Test1() As Integer
10  On Error Resume Next
20  Dim i As Integer
30  i = 27
40  Test1 = i / 3
50  If Err.Number Then MsgBox Err.Description, , "Erreur à la ligne " & Erl()
End Function

Private Function Test2() As Integer
10  On Error Resume Next
20  Dim i As Integer
30  i = 27
40  Test2 = i / 0 'division par 0
50  If Err.Number Then MsgBox Err.Description, , "Erreur à la ligne
" & Erl() '<- notre
numérotation
End Function

donc en tapant &HFF directement, l'IDE transforme en cette fameuse numérotation qui nous sert le plus souvent pour les erreurs

NB
cette numérotation n'a pas de règle particulière, juste pas 2 fois le même nombre dans une même procédure.
néanmoins (plus ou moins par convention) :
*en général on numérote de 10 en 10
*une SUB ou FUNCTION ne peut pas commencer par un numéro, contrairement au END (sub/function). de ce principe on ne le numérote pas (le end)
*en général on essaye de tout numéroter sans doublon sur toute une feuille de code (contrairement à mon exemple), mais c'est ingérable..
*les numéros peuvent également être directement utilisés comme étiquette :
10  On Error GoTo 60
* on ne numérote jamais "0", pour éviter toute confusion avec la gestion :
10  On Error GoTo 0

bon avec l'exemple çà mérite peut-être une 2e relecture mais sinon c'est pas si compliqué au final ^^
simple conversion de l'IDE dans le but de numéroter

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 01:19
j' aprécie
çà mérite peut-être même plusieurs relectures,
mais au final on ne peut que s' enrichir.
Une bonne explication, c' est toujours bon à prendre.
En tout cas elle m' a permis d' être moins c.. qu' il y' a tout juste moins d' une demi-heure

Merci.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
Rejoignez-nous