IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Creation menu et choix du port com


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Par défaut Creation menu et choix du port com
    Bonjour à tous,
    Pour le monitoring et la recherche d’un mot sur les données de passage dans un port com, j’ai essayé d’écrire des lignes de code mais voilà mes problèmes :

    1)Le menu (pour le choix du port com à utiliser) m’affiche la liste de tous les ports com de 1 à 15 au lieu de la liste des ports com présents et pas ouverts (dans mon cas, que le port 2)

    2)Quand je choisis une deuxième fois le même port (via le menu créé ) il me donne une erreur "port déjà ouvert"

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub Form_Load()
     
    ‘Declaration des variables
    Dim PortActif As Integer
    Dim PremierChoix As Integer
    Dim NumPort As Integer
    PremierChoix = 0
    PortActif = 0
    ‘Test des ports actifs et pas ouverts pour la création du menu
    For NumPort = 1 To 15
    On Error Resume Next
    MSComm1.CommPort = NumPort
    MSComm1.PortOpen = True
    If Err.Number <> 8002 Or Err.Number <> 0 Then 
    Load choix(NumPort)
    choix(NumPort).Caption = NumPort
    choix(NumPort).Visible = True
    MSComm1.PortOpen = False
    End If
    Next NumPort
     
    End Sub
     
    Private Sub choix_Click(ChoixPortActif As Integer)
     
    ‘Premier fois que on fait un choix du port com
    If PremierChoix = 0 Then
    PremierChoix = 1
    PortActif = ChoixPortActif
    choix(ChoixPortActif).Checked = True
    MSComm1.CommPort = ChoixPortActif
    MSComm1.PortOpen = True
    End If
     
    ‘Choix suivant du port com et control si pas le même (choisir une deuxième fois le même port com)
    If PremierChoix <> 0 And PortActif <> ChoixPortActif Then
    choix(PortActif).Checked = False
    MSComm1.CommPort = PortActif
    MSComm1.PortOpen = False
    PortActif = ChoixPortActif
    choix(ChoixPortActif).Checked = True
    MSComm1.CommPort = ChoixPortActif
    MSComm1.PortOpen = True
    End If
     
    End Sub

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    il semble que tu ait un problème dans la déclaration de tes variables ( portée..)

    en VB il faut toujours mettre en haut de toutes les pages de codes la ligne qui te permet de mettre en évidence ce type d'erreur par exemple...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Par défaut
    Merci bbil,

    1) En lisant simplement l'erreur donnée par VB , l'erreur générée est le 8005 et pas le 0.
    Une fois trouvée la faille voici la partie du nouveau code concerné:

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        For NumPort = 1 To 15
            On Error Resume Next
            MSComm1.CommPort = NumPort
            MSComm1.PortOpen = True
                If Err.Number <> 8002 And Err.Number <> 8005 Then
                    Load Choix(NumPort)
                    Choix(NumPort).Caption = NumPort
                    Choix(NumPort).Visible = True
                    MSComm1.PortOpen = False
                End If
        Next NumPort

    2) Le problème de "deuxième choix" du même port était dû à la portée des variables (comme tu avais suggéré ) dans mon cas la variable PremierChoix
    Une fois trouvée la faille voici la partie du nouveau code concerné (en haut du code):

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
     
    Private PortActif As Integer
    Private PremierChoix As Integer
    Private NumPort As Integer

    Merci pour ton aide !!!

Discussions similaires

  1. Creation port com pour laison usb
    Par hakoko dans le forum Windows 7
    Réponses: 1
    Dernier message: 10/07/2013, 14h01
  2. creation d'une paire de port com virtuel
    Par KnightCoder dans le forum Windows
    Réponses: 1
    Dernier message: 17/09/2007, 12h00
  3. [debutant][Port COM]
    Par Shooter dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/07/2004, 09h43
  4. [javaComm]Communication port COM
    Par gui4593 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 04/06/2004, 12h35
  5. port com
    Par jeremi dans le forum C
    Réponses: 12
    Dernier message: 16/09/2002, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo