| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Visual Basics programmation >> Content
    Comment accéder aux ports série et parallèle à l'aide de Visual Basic 6
    Si vous développez un programme utilisant Visual Basic 6, et si vous voulez être en mesure d' accéder aux ports série et parallèle , vous devez insérer des codes de programmation Visual Basic spécifiques dans le programme de fichier " . VB " . Vous pouvez éditer ce fichier directement dans l'environnement de programmation Visual Basic , mais le code pour ajouter l'accès aux ports série et parallèle est très longue et spécifique. Instructions
    1

    Double- cliquez sur l'icône " Microsoft Visual Studio. NET" du programme pour lancer le programme . Cliquez sur le menu "Fichier" , déplacez le curseur de votre souris sur l' option " Nouveau" et sélectionnez l'option "Projet" .
    2

    Cliquez sur l'option " Projets Visual Basic " sous la " ; Types de projets "rubrique. Cliquez sur l'option " Application console " sous les "Modèles " rubrique.
    3

    Tapez un nom pour l'application dans l'espace prévu et cliquez sur le bouton "OK" pour créer l' projet. Le fichier " Module1.vb " s'ouvre automatiquement
    4

    Collez le code suivant dans " Module1.vb " le dossier du projet avant la ligne de code qui lit " Module1 Module" : . < Br > Option Strict On


    « définir une classe de CommException qui hérite de la classe ApplicationException , et puis jeter un objet de type CommException lorsque vous recevez un message.Class d'erreur CommExceptionInherits ApplicationExceptionSub Neuf ( Raison ByVal As String ) MyBase.New (Reason ) Fin SubEnd classe
    5

    Collez le code suivant dans " Module1.vb " le dossier du projet après la ligne de code qui lit " Module1 Module" :

    'Déclare structures.Public Structure DCBlength DCBPublic Comme BaudRate Int32Public Comme fBitFields Int32Public Comme Int32 ' Voir les commentaires dans Win32API.TxtPublic wReserved Comme Int16Public XonLim Comme XoffLim Int16Public Comme Bytesize Int16Public Comme BytePublic parité que BytePublic StopBits Comme BytePublic XonChar Comme BytePublic XoffChar Comme BytePublic ErrorChar Comme BytePublic eofchar Comme BytePublic EvtChar Comme BytePublic wReserved1 Comme Int16 ' Réservé , ne pas UseEnd Structure

    publique Structure ReadIntervalTimeout COMMTIMEOUTSPublic Comme ReadTotalTimeoutMultiplier Int32Public Comme Int32Public ReadTotalTimeoutConstant Comme WriteTotalTimeoutMultiplier Int32Public Comme Int32Public WriteTotalTimeoutConstant Comme Int32End Structure

    « déclarer GENERIC_READ de Const constants.Public Comme Int32 = & H80000000Public GENERIC_WRITE de Const Comme Int32 = & Const H40000000Public OPEN_EXISTING Comme Int32 = 3Public Const FILE_ATTRIBUTE_NORMAL Comme Int32 = & H80Public NOPARITY de Const Comme Int32 = 0Public Const ONESTOPBIT Comme Int32 = 0

    'Déclare références à functions.Public Declare Function CreateFile Auto Lib " kernel32.dll " _ ( lpFileName ByVal As String , ByVal dwDesiredAccess Comme Int32, _ByVal dwShareMode Comme Int32, lpSecurityAttributes ByVal en tant que IntPtr, de dwCreationDisposition _ByVal Comme Int32, ByVal externe dwFlagsAndAttributes Comme Int32, _ByVal hTemplateFile comme IntPtr ) comme IntPtr

    public Declare Function GetCommState Auto Lib " kernel32.dll " ( ByVal NCID comme IntPtr , _ByRef lpDCB Comme DCB ) As Boolean

    public Declare Fonction Auto SetCommState Lib " kernel32.dll " ( ByVal NCID comme IntPtr , _ByRef lpDCB Comme DCB ) As Boolean

    public Declare Auto GetCommTimeouts de fonction Lib " kernel32.dll " ( ByVal hFile comme IntPtr , _ByRef lpCommTimeouts tant COMMTIMEOUTS ) As Boolean

    public Declare Auto SetCommTimeouts de fonction Lib " kernel32.dll " ( ByVal hFile comme IntPtr , _ByRef lpCommTimeouts Comme COMMTIMEOUTS ) comme déclarez Boolean

    public Auto Fonction WriteFile Lib " kernel32 . dll " ( ByVal hFile comme IntPtr , _ByVal lpBuffer As Byte (), ByVal nNumberOfBytesToWrite Comme Int32, _ByRef lpNumberOfBytesWritten Comme Int32, ByVal lpOverlapped comme IntPtr ) As Boolean

    public Declare Function ReadFile Auto Lib" kernel32.dll " ; ( ByVal hFile comme IntPtr , lpBuffer _ByVal As Byte (), ByVal nNumberOfBytesToRead Comme Int32, _ByRef lpNumberOfBytesRead Comme Int32, ByVal lpOverlapped comme IntPtr ) As Boolean

    public Declare Function Auto CloseHandle Lib " kernel32.dll " ( ByVal hObject comme IntPtr ) As Boolean
    6

    Collez le code suivant dans " Module1.vb " le dossier du projet après la ligne de code qui lit " Sub Main ":

    ' Déclaration des variables locales que vous allez utiliser dans le code.Dim hSerialPort , hParallelPort Comme IntPtrDim succès en tant BooleanDim MyDCB Comme DCBDim MyCommTimeouts Comme COMMTIMEOUTSDim BytesWritten , bytesread Comme Int32Dim Buffer () As Byte

    «déclarer les variables à utiliser pour encoding.Dim oEncoder As New System.Text.ASCIIEncodingDim oEnc Comme System.Text.Encoding = oEncoder.GetEncoding ( 1252 )

    « Autre corde à Byte () . buffer = oEnc.GetBytes ( " Test " ) Essayez «Accès au port.Console.WriteLine série ( « Accès au port série COM1 " ) 'Obtenir une poignée sur le COM1 port.hSerialPort = CreateFile ( " COM1 " , GENERIC_READ Ou GENERIC_WRITE , 0, IntPtr.Zero , _OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , IntPtr.Zero ) ' Vérifiez que la poignée obtenu est valid.If hSerialPort.ToInt32 = -1 ThenThrow New CommException ( " Impossible d'obtenir une poignée sur le port COM1" ) End If' extraire les paramètres de contrôle actuels. succès = GetCommState ( hSerialPort , MyDCB ) en cas de succès = False ThenThrow New CommException ("Impossible de récupérer les paramètres de contrôle actuels " ) End If 'Modifier les propriétés de la structure DCB récupéré le cas échéant . AVERTISSEMENT: Assurez-vous de modifier les propriétés selon leur values.MyDCB.BaudRate soutenu = 9600MyDCB.ByteSize = 8MyDCB.Parity = NOPARITYMyDCB.StopBits = ONESTOPBIT ' COM1 Reconfigurer basée sur les propriétés de la modification DCB structure.Success = SetCommState ( hSerialPort , MyDCB ) en cas de succès = False ThenThrow New CommException ("Impossible de reconfigurer COM1" ) End If ' récupérer le time-out settings.Success = GetCommTimeouts courants ( hSerialPort , MyCommTimeouts ) en cas de succès = False ThenThrow New CommException ("Impossible de récupérer les paramètres d'expiration actuelles ") End If ' Modifier les propriétés de la structure de COMMTIMEOUTS récupéré le cas échéant . AVERTISSEMENT: Assurez-vous de modifier les propriétés selon leur values.MyCommTimeouts.ReadIntervalTimeout soutenu = 0MyCommTimeouts.ReadTotalTimeoutConstant = 0MyCommTimeouts.ReadTotalTimeoutMultiplier = 0MyCommTimeouts.WriteTotalTimeoutConstant = 0MyCommTimeouts.WriteTotalTimeoutMultiplier = 0 ' reconfigurer les paramètres de délai d'attente , basée sur les propriétés de la modification COMMTIMEOUTS structure.Success = SetCommTimeouts ( hSerialPort , MyCommTimeouts ) en cas de succès = False ThenThrow New CommException ("Impossible de les paramètres de délai d'attente reconfigurer " ) End If ' écrire des données sur COM1.Console.WriteLine ( "Ecrire les données suivantes COM1: test " ) succès = WriteFile ( hSerialPort , tampon , buffer.Length , BytesWritten , IntPtr.Zero ) en cas de succès = False ThenThrow New CommException ( " Impossible d'écrire sur COM1 " ) End If ' lire les données de COM1.Success = ReadFile ( hSerialPort , tampon , BytesWritten , bytesread , IntPtr.Zero ) en cas de succès = False ThenThrow New CommException ( "Impossible de lire à partir de COM1" ) Fin IfCatch ex As ExceptionConsole.WriteLine ( ex.Message ) Enfin « relâcher la poignée de COM1 . succès = CloseHandle ( hSerialPort ) en cas de succès = False ThenConsole.WriteLine ("Impossible de relâcher la poignée pour COM1 ") End Try IfEnd
    7

    Collez le code suivant après le code que vous avez inséré dans le fichier " Module1.vb " à l'étape 6: Photos

    Essayez de port.Console.WriteLine parallèle ( «Accès au port parallèle LPT1" ) 'Obtenir une poignée sur le parallèle LPT1 port.hParallelPort = CreateFile ( " ; LPT1 " , GENERIC_READ Ou GENERIC_WRITE , 0, IntPtr.Zero , _OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , IntPtr.Zero ) ' Vérifiez que la poignée obtenu est valid.If hParallelPort.ToInt32 = -1 ThenThrow New CommException ( " Impossible d'obtenir une poignée d' le port LPT1 " ) End If ' récupération de la régulation du courant settings.Success = GetCommState ( hParallelPort , MyDCB ) en cas de succès = False ThenThrow New CommException (" Impossible de récupérer les paramètres de contrôle actuels " ) End If ' Modifier les propriétés de l' extrait la structure DCB , le cas échéant . AVERTISSEMENT: Assurez-vous de modifier les propriétés selon leur values.MyDCB.BaudRate soutenu = 9600MyDCB.ByteSize = 8MyDCB.Parity = NOPARITYMyDCB.StopBits = ONESTOPBIT ' LPT1 Reconfigurer basée sur les propriétés de la modification DCB structure.Success = SetCommState ( hParallelPort , MyDCB ) en cas de succès = False ThenThrow New CommException ("Impossible de reconfigurer LPT1" ) End If ' récupérer le time-out settings.Success = GetCommTimeouts courants ( hParallelPort , MyCommTimeouts ) en cas de succès = False ThenThrow New CommException ("Impossible de récupérer les paramètres d'expiration actuelles ") End If ' Modifier les propriétés de la structure de COMMTIMEOUTS récupéré le cas échéant . AVERTISSEMENT: Assurez-vous de modifier les propriétés selon leur values.MyCommTimeouts.ReadIntervalTimeout soutenu = 0MyCommTimeouts.ReadTotalTimeoutConstant = 0MyCommTimeouts.ReadTotalTimeoutMultiplier = 0MyCommTimeouts.WriteTotalTimeoutConstant = 0MyCommTimeouts.WriteTotalTimeoutMultiplier = 0 ' reconfigurer les paramètres de délai d'attente , basée sur les propriétés de la modification COMMTIMEOUTS structure.Success = SetCommTimeouts ( hParallelPort , MyCommTimeouts ) en cas de succès = False ThenThrow New CommException ("Impossible de les paramètres de délai d'attente reconfigurer " ) End If ' écrire des données sur LPT1. 'Note: Vous ne pouvez pas lire les données à partir d'un port parallèle en appelant le ReadFile function.Console.WriteLine ( "Ecrire les données suivantes sur LPT1 : Test ») Succès = WriteFile ( hParallelPort , tampon , buffer.Length , BytesWritten , IntPtr.Zero ) Si le succès = False ThenThrow New CommException ("Impossible d'écrire sur LPT1 ") End IfCatch ex As ExceptionConsole.WriteLine ( ex.Message ) Enfin « relâcher la poignée de LPT1.Success = CloseHandle ( hParallelPort ) en cas de succès = False ThenConsole . WriteLine ("Impossible de relâcher la poignée de LPT1" ) Fin IfEnd essayer et

    Console.WriteLine ("Appuyez sur Entrée pour quitter " ) Console.ReadLine ()
    8

    Cliquez sur l' "Build " dans le menu et sélectionner l'option " Générer la solution " . Cliquez sur le menu "Debug" et sélectionnez l'option "Démarrer" . L'application a désormais accès aux ports série et parallèle.

    Previous :

    next :
      articles connexes
    ·Comment faire pour utiliser des dates dans un accès de…
    ·Comment économiser List Box éléments à un tableau 
    ·Comment choisir parmi un ensemble de données en Visual…
    ·Comment faire des scripts VBS 
    ·Comment programmer une barre de défilement verticale d…
    ·Qu'est-ce que la programmation VBA 
    ·VB code entier en chaîne de conversion 
    ·Comment sauver DataGridView à un dataset 
    ·Comment connecter VB.NET Avec Oracle 
    ·Comment créer des tableaux à l'exécution dans Visual…
      articles en vedette
    ·Comment dessiner une grille sur un panneau en VB.NET 
    ·Comment faire pour convertir Int flotter sur Visual Bas…
    ·Création d'une liste de données de MySQL en PHP 
    ·Comment utiliser MiKTeX Avec Python 
    ·Comment faire pour intégrer PHP en HTML avec Dreamweav…
    ·Comment faire pour créer une base de données CV 
    ·Comment faire un VBS MsgBox De DOS 
    ·Comment savoir Computer Game Programming Avec DirectX 
    ·Comment améliorer Search Engine Ranking SEO ou d'une p…
    ·Silverlight jeu Tutoriel 
    Copyright © Connaissances Informatiques http://fr.wingwit.com