| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Visual Basics Programmering >> Content
    Sådan får du adgang Serial & Parallel porte ved hjælp af Visual Basic 6
    Hvis du er ved at udvikle et program ved hjælp af Visual Basic 6 , og du ønsker at kunne få adgang til de serielle og parallelle porte , skal du indsætte specifikke Visual Basic programmering koder ind i programmets " . VB " fil . Du kan redigere denne fil direkte i Visual Basic programmering miljø, men koden til at tilføje adgang til de serielle og parallelle porte er meget lang og specifik. Instruktioner
    1

    Dobbeltklik på "Microsoft Visual Studio. NET "-program ikonet for at starte programmet. Klik på menuen "Filer" , flyt musemarkøren over "Ny ", og vælg "Projekt " valgmulighed.
    2

    Klik på " Visual Basic Projects " valgmulighed under " , Project Types "overskrift . Klik på " Console Application " option beneath " Templates " overskrift .
    3

    Skriv et navn til programmet i feltet og klik på "OK" knappen for at oprette projekt . Den " Module1.vb " fil åbnes automatisk
    4

    Indsæt følgende kode i projektets " Module1.vb ", før den linje kode, der lyder " Modul Module1 " : . < Br >

    Option Strict On

    ' Definer en CommException klasse, der arver fra ApplicationException klassen ', og derefter kaste et objekt af typen CommException , når du modtager en fejl message.Class CommExceptionInherits ApplicationExceptionSub Ny ( ByVal Reason As String ) MyBase.New ( Reason ) End SubEnd Class
    5

    Indsæt følgende kode i projektets " Module1.vb " fil efter den linje kode, der lyder " Modul Module1 " : Hej

    ' Erklær structures.Public struktur DCBPublic DCBlength Som Int32Public transmissionshastighed, når Int32Public fBitFields Som Int32 ' Se kommentarer i Win32API.TxtPublic wReserved Som Int16Public XonLim Som Int16Public XoffLim Som Int16Public ByteSize Som BytePublic Paritet Som BytePublic stopBits As BytePublic XonChar Som BytePublic XoffChar Som BytePublic ErrorChar Som BytePublic EofChar Som BytePublic EvtChar Som BytePublic wReserved1 Som int16 ' Reserveret , Do Not UseEnd Structure

    offentlig struktur COMMTIMEOUTSPublic ReadIntervalTimeout Som Int32Public ReadTotalTimeoutMultiplier Som Int32Public ReadTotalTimeoutConstant Som Int32Public WriteTotalTimeoutMultiplier Som Int32Public WriteTotalTimeoutConstant Som Int32End Structure

    ' Erklær constants.Public Const GENERIC_READ Som Int32 = & H80000000Public Const GENERIC_WRITE Som Int32 = & H40000000Public Const OPEN_EXISTING Som Int32 = 3Public Const FILE_ATTRIBUTE_NORMAL Som Int32 = & H80Public Const NOPARITY Som Int32 = 0PR Const ONESTOPBIT Som Int32 = 0

    ' Erklær henvisninger til ekstern functions.Public Erklær Auto Function CreateFile Lib " kernel32.dll " _ ( ByVal lpFileName As String , ByVal dwDesiredAccess Som Int32 , _ByVal dwShareMode Som Int32 , ByVal lpSecurityAttributes As IntPtr , _ByVal dwCreationDisposition Som Int32 , ByVal dwFlagsAndAttributes Som Int32 , Erklær _ByVal hTemplateFile Som IntPtr ) Som IntPtr

    Public Auto Function GetCommState Lib " kernel32.dll " ( ByVal nCid Som IntPtr , _ByRef lpDCB Som DCB ) Som Boolean

    Public Erklær Auto Function SetCommState Lib " kernel32.dll " ( ByVal nCid Som IntPtr , _ByRef lpDCB Som DCB ) Som Boolean

    Public Erklær Autofunktion GetCommTimeouts Lib " kernel32.dll " ( ByVal hFile Som IntPtr , _ByRef lpCommTimeouts As COMMTIMEOUTS ) Som Boolean

    Public Erklær Autofunktion SetCommTimeouts Lib " kernel32.dll " ( ByVal hFile Som IntPtr , _ByRef lpCommTimeouts As COMMTIMEOUTS ) Som Boolean

    Public Erklær Auto Function WriteFile Lib " kernel32 . dll " ( ByVal hFile Som IntPtr , _ByVal lpBuffer Som Byte () , ByVal nNumberOfBytesToWrite Som Int32 , _ByRef lpNumberOfBytesWritten Som Int32 , ByVal lpOverlapped Som IntPtr ) Som Boolean

    Public Erklær Auto Function ReadFile Lib " Kernel32.dll " , ( ByVal hFile Som IntPtr , _ByVal lpBuffer Som Byte () , ByVal nNumberOfBytesToRead Som Int32 , _ByRef lpNumberOfBytesRead Som Int32 , ByVal lpOverlapped Som IntPtr ) Som Boolean

    Public Erklær Auto Function CloseHandle Lib " Kernel32.dll " ( ByVal hObject som IntPtr ) som Boolean
    6

    Indsæt følgende kode i projektets " Module1.vb " fil efter den linje kode, der lyder "Sub Main" : Hej

    ' Erklær de lokale variabler, som du vil bruge i code.Dim hSerialPort , hParallelPort som IntPtrDim succes Som BooleanDim MyDCB som DCBDim MyCommTimeouts As COMMTIMEOUTSDim BytesWritten , BytesRead som Int32Dim Buffer ( ) som Byte

    ' erklære variabler til brug for encoding.Dim oEncoder Som New System.Text.ASCIIEncodingDim oEnc Som System.Text.Encoding = oEncoder.GetEncoding ( 1252 )

    ' Konverter String til Byte (). Buffer = oEnc.GetBytes ( "Test" ) Prøv at " Adgang til serielle port.Console.WriteLine ( " Adgang til COM1 serielle port " ) 'Hent et håndtag til COM1 serielle port.hSerialPort = CreateFile ( " COM1 " , GENERIC_READ Or GENERIC_WRITE , 0, IntPtr.Zero , _OPEN_EXISTING , ) FILE_ATTRIBUTE_NORMAL , IntPtr.Zero 'Bekræft , at det opnåede håndtaget er valid.If hSerialPort.ToInt32 = -1 ThenThrow New CommException ( "Kunne ikke få et håndtag til COM1 port" ) End If' Hent de aktuelle indstillinger . succes = GetCommState ( hSerialPort , MyDCB ) Hvis succes = False ThenThrow New CommException ( "Kan ikke hente de aktuelle indstillinger " ) End If ' Rediger egenskaberne for den hentede DCB struktur som er relevant. " ADVARSEL: Sørg for at ændre egenskaberne i forhold til deres understøttet values.MyDCB.BaudRate = 9600MyDCB.ByteSize = 8MyDCB.Parity = NOPARITYMyDCB.StopBits = ONESTOPBIT ' Omkonfigurér COM1 baseret på egenskaberne af den modificerede DCB structure.Success = SetCommState ( hSerialPort , MyDCB ) Hvis succes = False ThenThrow New CommException ( "Kan ikke omkonfigurere COM1 " ) End If ' Hent den aktuelle tid -out settings.Success = GetCommTimeouts ( hSerialPort , MyCommTimeouts ) Hvis succes = False ThenThrow New CommException ( "Kan ikke hente nuværende tid- out indstillinger " ) End If ' Rediger egenskaberne for den hentede COMMTIMEOUTS struktur som er relevant. " ADVARSEL: Sørg for at ændre egenskaberne i forhold til deres understøttet values.MyCommTimeouts.ReadIntervalTimeout = 0MyCommTimeouts.ReadTotalTimeoutConstant = 0MyCommTimeouts.ReadTotalTimeoutMultiplier = 0MyCommTimeouts.WriteTotalTimeoutConstant = 0MyCommTimeouts.WriteTotalTimeoutMultiplier = 0 ' Omkonfigurere time-out indstillinger , baseret på egenskaberne af den modificerede COMMTIMEOUTS structure.Success = SetCommTimeouts ( hSerialPort , MyCommTimeouts ) Hvis succes = False ThenThrow New CommException ( "Kan ikke omkonfigurere time-out indstillinger " ) End If ' Skriv data til COM1.Console.WriteLine ( "Skrive følgende data til COM1 : Test " ) succes = WriteFile ( hSerialPort , Buffer, Buffer.Length , BytesWritten , IntPtr.Zero ) Hvis succes = False ThenThrow New CommException ( " Kunne ikke skrive til COM1 " ) End If ' Læs data fra COM1.Success = ReadFile ( hSerialPort , Buffer, BytesWritten , BytesRead , IntPtr.Zero ) Såfremt succes = False ThenThrow New CommException ( "Kan ikke læse fra COM1 " ) End IfCatch ex Som ExceptionConsole.WriteLine ( Ex.Message ) Endelig ' Slip håndtaget til COM1 . succes = CloseHandle ( hSerialPort ) Hvis succes = False ThenConsole.WriteLine ( "Kan ikke frigive håndtag til COM1 " ) End IfEnd Prøv
    7

    Indsæt følgende kode umiddelbart efter den kode, du indsat i " Module1.vb "-fil i Trin 6 : Hej

    Prøv ' parallel port.Console.WriteLine ( "Adgang til LPT1 parallel port" ) ' Hent et håndtag til LPT1 parallelle port.hParallelPort = CreateFile ( " ; LPT1 " , GENERIC_READ Or GENERIC_WRITE , 0, IntPtr.Zero , _OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , ) IntPtr.Zero 'Bekræft , at det opnåede håndtaget er valid.If hParallelPort.ToInt32 = -1 ThenThrow New CommException ( " Kunne ikke få et håndtag til LPT1 port " ) End If ' Hent det nuværende kontrolsystem settings.Success = GetCommState ( hParallelPort , MyDCB ) Hvis succes = False ThenThrow New CommException ( " Kan ikke hente de aktuelle indstillinger " ) End If' Rediger egenskaberne for den hentede DCB struktur som er relevant. " ADVARSEL: Sørg for at ændre egenskaberne i forhold til deres understøttet values.MyDCB.BaudRate = 9600MyDCB.ByteSize = 8MyDCB.Parity = NOPARITYMyDCB.StopBits = ONESTOPBIT ' Omkonfigurér LPT1 baseret på egenskaberne af den modificerede DCB structure.Success = SetCommState ( hParallelPort , MyDCB ) Hvis succes = False ThenThrow New CommException ( "Kan ikke omkonfigurere LPT1 " ) End If ' Hent den aktuelle tid -out settings.Success = GetCommTimeouts ( hParallelPort , MyCommTimeouts ) Hvis succes = False ThenThrow New CommException ( "Kan ikke hente nuværende tid- out indstillinger " ) End If ' Rediger egenskaberne for den hentede COMMTIMEOUTS struktur som er relevant. " ADVARSEL: Sørg for at ændre egenskaberne i forhold til deres understøttet values.MyCommTimeouts.ReadIntervalTimeout = 0MyCommTimeouts.ReadTotalTimeoutConstant = 0MyCommTimeouts.ReadTotalTimeoutMultiplier = 0MyCommTimeouts.WriteTotalTimeoutConstant = 0MyCommTimeouts.WriteTotalTimeoutMultiplier = 0 ' Omkonfigurere time-out indstillinger , baseret på egenskaberne af den modificerede COMMTIMEOUTS structure.Success = SetCommTimeouts ( hParallelPort , MyCommTimeouts ) Hvis succes = False ThenThrow New CommException ( "Kan ikke omkonfigurere time-out indstillinger " ) End If ' Skriv data til LPT1 . ' Bemærk: Du kan ikke læse data fra en parallel port ved at kalde ReadFile function.Console.WriteLine ( "Skrive følgende data til LPT1 : Test" ) Succes = WriteFile ( hParallelPort , Buffer, Buffer.Length , BytesWritten , IntPtr.Zero ) Hvis succes = False ThenThrow New CommException ( "Kunne ikke skrive til LPT1 " ) End IfCatch ex Som ExceptionConsole.WriteLine ( Ex.Message ) Endelig ' Slip håndtaget til LPT1.Success = CloseHandle ( hParallelPort ) Såfremt succes = False ThenConsole . WriteLine ( "Kan ikke frigive håndtaget til LPT1 " ) End IfEnd Prøv

    Console.WriteLine ( " Tryk på ENTER for at afslutte " ) Console.ReadLine ()
    8

    Klik " Build "-menuen og vælg " Build Solution " valgmulighed. Klik på " Debug" menuen og vælg "Start" valgmulighed. Ansøgningen har nu adgang til de serielle og parallelle porte.

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan installeres VB6 Runtime uden at genstarte 
    ·Sådan Edit Programmer i Visual Basic 
    ·Sådan betjeningsknapperne på en dialogboks 
    ·Fundamentals af Visual Basic 
    ·Sådan Download af en webside med VBScript 
    ·Hvordan man arbejder med en Visual Basic Combo Box 
    ·Hvordan man skriver VBA -kode 
    ·Sådan Skil VB 
    ·Sådan Find en karakter i en String i Visual Basic 
    ·Sådan Beregn Kolonner i en MS DataGrid 
      Anbefalede Artikler
    ·Sådan fjernes Path From argv [0] i Python 
    ·Sådan Konverter en liste til en String i Java 
    ·PHP Henvisning Funktion i en klasse 
    ·Sådan Capture en Blokering Brugerens SQL i Oracle 
    ·Sådan kører Perl på en bærbar 
    ·Styrkerne og svaghederne i Visual Basic Language 
    ·Den Java-kode til at tælle antallet af ord i et array 
    ·Sådan opdatere siden efter 3 SEC i PHP 
    ·Computer System Analysis & Design 
    ·Sådan Ryd Java Web Start Cache 
    Copyright © Computer Viden http://www.computerdk.com