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 :

[VB6]Commander plusieurs ports parallèle [Trucs & Astuces]


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [VB6]Commander plusieurs ports parallèle
    Bonjour.
    J'ai effectué de nombreuses recherches sur le sujet, mais rien ne m'a permis de répondre à cette question.

    Etat actuel:
    - j'ai 3 ports parallèles à commander
    - j'utilise 3 composants DLPrinterPortIOX (un pour chaque port parallèle)
    Pb:
    l'utilisation de plusieurs composants DLPrinterPortIOX, même s'ils ont des propriétés LPTNumber différentes, génère le message d'erreur "Erreur Automation - Une exception s'est produite" lors de l'ouverture de la fenêtre (avant même mes instructions contenues dans le Form_Load)

    Que dois-je faire, je ne comprend pas la raison de ce problème ?

    NB: Etant donné que je dois écouter de nombreux signaux, à tout instant, sur les ports parallèles, je ne peux pas n'utiliser qu'un seul composant DLPrinterPortIOX.

    Merci d'avance si vous pouvez m'aider.

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Complément de question: Détection des ports disponibles
    Une autre question encore:

    Connaissez vous un moyen de détecter si l'ordinateur possède 1 ou 2 ports série COM, et s'il possède 1, 2 ou 3 ports parallèles LPT ? (et bien entendu, lesquels ? (0x378, 0x278, ou 0x3BC)

    Merci d'avance

  3. #3
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Je ne connais pas le composant DLPrinterPortIOX.

    Par contre, pour énumérer la liste des ports:
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Option Explicit
     
    Private Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" _
                    (ByVal pName As String, _
                    ByVal nLevel As Long, _
                    lpbPorts As Any, _
                    ByVal cbBuf As Long, _
                    pcbNeeded As Long, _
                    pcReturned As Long) As Long
     
    Private Declare Function lstrlenA Lib "kernel32" _
                    (lpString As Any) As Long
     
    Private Declare Function lstrcpyA Lib "kernel32" _
                    (lpString1 As Any, _
                    lpString2 As Any) As Long
     
    Private Const SIZEOFPORT_INFO_2 = 20
     
    Private Type PORT_INFO_2
        pPortName    As Long
        pMonitorName As Long
        pDescription As Long
        fPortType    As Long
        Reserved     As Long
    End Type
     
    Private Enum PortTypes
        PORT_TYPE_WRITE = &H1
        PORT_TYPE_READ = &H2
        PORT_TYPE_REDIRECTED = &H4
        PORT_TYPE_NET_ATTACHED = &H8
    End Enum
     
    Public Sub GetListePorts()
        Dim pcbNeeded   As Long
        Dim pcReturned  As Long
        Dim PortI2()    As PORT_INFO_2
        Dim Boucle      As Integer
        Dim StrPortType As String
     
        Call EnumPorts(vbNullString, 2, 0, 0, pcbNeeded, pcReturned)
        If pcbNeeded Then
            ReDim PortI2((pcbNeeded / SIZEOFPORT_INFO_2))
            If EnumPorts(vbNullString, 2, PortI2(0), pcbNeeded, pcbNeeded, pcReturned) Then
                For Boucle = 0 To (pcReturned - 1)
                    With PortI2(Boucle)
                        StrPortType = ""
                        If (.fPortType And PORT_TYPE_WRITE) Then StrPortType = "write "
                        If (.fPortType And PORT_TYPE_READ) Then StrPortType = StrPortType & "read "
                        If (.fPortType And PORT_TYPE_REDIRECTED) Then StrPortType = StrPortType & "redirected "
                        If (.fPortType And PORT_TYPE_NET_ATTACHED) Then StrPortType = StrPortType & "network"
                        MsgBox GetStrFromPtrA(.pPortName) '& " (" & StrPortType & ")"
                    End With
                Next
            End If
        End If
    End Sub
     
    Public Function GetStrFromPtrA(lpszA As Long) As String
       GetStrFromPtrA = String$(lstrlenA(ByVal lpszA), 0)
       Call lstrcpyA(ByVal GetStrFromPtrA, ByVal lpszA)
    End Function
     
    Public Sub main()
     
        GetListePorts
     
    End Sub
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Question facultative sur la liste des ports disponibles
    Merci pour cette réponse déjà.

    Sinon, j'ai regardé le résultat de cette fonction, et j'ai pu constater qu'elle m'affichait:
    LPT1: LPT2: LPT3: COM1: COM2: COM3: COM4: (et \\IRTRUC\\IRTRUC mais c'est un détail, cela correspond à un chemin réseau à mon entreprise)
    Donc, comparé à ce que je vois de mon ordinateur, cette fonction affiche les ports que l'on "pourrait" utiliser sur le PC, car en réalité, seuls les ports LPT1:, COM1: et COM2: sont accessibles au dos de ma machine.

    Y'a-t-il (question facultative, pour information personnelle) un moyen de connaître les ports utilisés, CAD ceux qui sont disponibles au dos de la machine ?

  5. #5
    HPJ
    HPJ est déconnecté
    Membre averti

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2003
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Tu n'as qu'à essayer d'ouvrir chaque port, si ca échoue alors le port n'existe pas réellement.
    Avant de poser une question, merci de chercher dans les rubriques suivantes:
    FAQ VB
    Tutoriaux VB
    Recherche avancée sur le forum

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Bonne idée
    Pas con du tout ça, je vais voir de suite le résultat, merci.

Discussions similaires

  1. je veux connaître les commandes de port parallèle par VB6
    Par typaza2008 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 23/02/2010, 12h22
  2. commande du port// du pc avec VB6
    Par samisihem dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/03/2009, 22h17
  3. Commander plusieurs moteurs par un seul port USB
    Par wolfjeremy dans le forum Windows
    Réponses: 6
    Dernier message: 11/06/2006, 14h52
  4. [VB6] Command dans Data Environnement
    Par damned3 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/09/2005, 09h39
  5. Plusieurs ports 80 en LISTEN
    Par SuperCed dans le forum Développement
    Réponses: 10
    Dernier message: 22/12/2004, 09h37

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