Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Visual Basics Programming >> Content
Hoe toegang Serieel & Parallel Ports met behulp van Visual Basic 6
Als u het ontwikkelen van een programma met behulp van Visual Basic 6 , en je wilt in staat zijn om toegang tot de seriële en parallelle poorten , moet u specifieke Visual Basic programmeren codes invoegen in " . VB " bestand van het programma . U kunt dit bestand bewerken rechtstreeks in de Visual Basic programmeeromgeving , maar de code voor het toevoegen van de toegang tot de seriële en parallelle poorten is erg lang en specifiek. Instructies
1

Dubbelklik op de " Microsoft Visual Studio . NET " programma-icoon om het programma te starten . Klik op het menu " File" , Beweeg de muis cursor over de " nieuwe " optie en selecteer de optie ' Project ' . Kopen van 2

Klik op de " Visual Basic Projects " optie onder het " , Project Types " rubriek . Klik op de optie " Console Application " onder de " Sjablonen " rubriek .

Type 3 een naam voor de toepassing in de ruimte in en klik op de knop "OK" om het creëren project . De " Module1.vb " bestand wordt automatisch geopend
4

Plak de volgende code in " Module1.vb " bestand van het project vóór de regel code die "Module Module1 " luidt : . < Br

Optie > Strict On

' een CommException klasse die erft van de ApplicationException klasse definiëren , ' en dan gooien een object van het type CommException wanneer u een fout message.Class CommExceptionInherits ApplicationExceptionSub New ( ByVal Reason als Koord ) MyBase.New ( Reason ) Einde SubEnd klasse
5

Plak de volgende code in " Module1.vb " bestand van het project na de regel code die "Module Module1 " luidt :

' structures.Public Structuur DCBPublic DCBlength verklaart als Int32Public Baudrate Zoals Int32Public fBitFields Zoals Int32 ' Zie Reacties in Win32API.TxtPublic wReserved Zoals Int16Public XonLim Zoals Int16Public XoffLim Zoals Int16Public ByteSize Zoals BytePublic Parity Zoals BytePublic stopbits Zoals BytePublic XonChar Zoals BytePublic XoffChar Zoals BytePublic ErrorChar Zoals BytePublic EofChar Zoals BytePublic EvtChar Zoals BytePublic wReserved1 Zoals Int16 ' Gereserveerde ; Niet UseEnd Structuur

openbare Structuur COMMTIMEOUTSPublic ReadIntervalTimeout
Zoals Int32Public ReadTotalTimeoutMultiplier Zoals Int32Public ReadTotalTimeoutConstant Zoals Int32Public WriteTotalTimeoutMultiplier Zoals Int32Public WriteTotalTimeoutConstant Zoals Int32End Structuur

' Verklaar constants.Public Const GENERIC_READ Zoals Int32 = & H80000000Public Const GENERIC_WRITE Zoals Int32 = & H40000000Public Const OPEN_EXISTING Zoals Int32 = 3Public Const FILE_ATTRIBUTE_NORMAL Zoals Int32 = & H80Public Const NOPARITY Zoals Int32 = 0Public Const ONESTOPBIT Zoals Int32 = 0

' verwijzingen Declare naar externe functions.Public Declare Auto-functie CreateFile Lib " kernel32.dll " _ ( ByVal lpFileName als Koord , ByVal dwDesiredAccess Zoals Int32 , _ByVal dwShareMode Zoals Int32 , ByVal lpSecurityAttributes Zoals IntPtr , _ByVal dwCreationDisposition Zoals Int32 , ByVal dwFlagsAndAttributes Zoals Int32 , _ByVal hTemplateFile Als IntPtr ) Zoals IntPtr

Public
Declare Auto-functie GetCommState Lib " kernel32.dll " ( ByVal NCID Zoals IntPtr , _ByRef lpDCB Zoals DCB ) zoals Van Boole

Public
Declare Auto-functie SetCommState Lib " kernel32.dll " ( ByVal NCID Zoals IntPtr , _ByRef lpDCB Zoals DCB ) zoals Van Boole

Public
Declare Auto-functie GetCommTimeouts Lib " kernel32.dll " ( ByVal hFile Zoals IntPtr , _ByRef lpCommTimeouts Zoals COMMTIMEOUTS ) zoals Van Boole

Public
Declare Auto-functie SetCommTimeouts Lib " kernel32.dll " ( ByVal hFile Zoals IntPtr , _ByRef lpCommTimeouts Als COMMTIMEOUTS ) zoals Van Boole

Public
Declare Auto-functie WriteFile Lib " kernel32 . dll " ( ByVal hFile Zoals IntPtr , _ByVal lpBuffer Zoals Byte ( ) , ByVal nNumberOfBytesToWrite Zoals Int32 , _ByRef lpNumberOfBytesWritten Zoals Int32 , ByVal lpOverlapped Als IntPtr ) zoals Van Boole

Public
Declare Auto-functie ReadFile Lib " kernel32.dll " , ( ByVal hFile Zoals IntPtr , _ByVal lpBuffer Zoals Byte ( ) , ByVal nNumberOfBytesToRead Zoals Int32 , _ByRef lpNumberOfBytesRead Zoals Int32 , ByVal lpOverlapped Als IntPtr ) zoals Van Boole

Public
Declare Auto-functie CloseHandle Lib " kernel32.dll " ( ByVal hObject Zoals IntPtr ) zoals Van Boole
6

Plak de volgende code in " Module1.vb " bestand van het project na de regel code die "Sub Main " luidt :

' Verklaar de lokale variabelen die u wilt gebruiken in de code.Dim hSerialPort , hParallelPort Als IntPtrDim succes Als BooleanDim MyDCB Zoals DCBDim MyCommTimeouts Zoals COMMTIMEOUTSDim BytesWritten , BytesRead Zoals Int32Dim Buffer ( ) Zoals Byte

' Verklaar de variabelen te gebruiken voor encoding.Dim oEncoder Als Nieuw System.Text.ASCIIEncodingDim oEnc Zoals System.Text.Encoding = oEncoder.GetEncoding ( 1252 ) op

'Converteren String naar Byte ( ) . Buffer = oEnc.GetBytes ( " Test" ) Probeer ' Toegang tot de seriële port.Console.WriteLine ( "Toegang tot de seriële poort COM1 ")' een handvat verkrijgen aan de COM1 seriële port.hSerialPort = CreateFile ( " COM1 " , GENERIC_READ Of GENERIC_WRITE , 0 , IntPtr.Zero , _OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , IntPtr.Zero ) ' Controleer of de verkregen handvat is valid.If hSerialPort.ToInt32 = -1 ThenThrow New CommException ( " Kan geen greep krijgen op de COM1 poort " ) End If' Haal de huidige instellingen . succes = GetCommState ( hSerialPort , MyDCB ) als succes = False ThenThrow New CommException ( "Kan de huidige instellingen ophalen " ) End If ' Wijzig de eigenschappen van de opgehaalde DCB structuur waar nodig . ' WAARSCHUWING : Zorg ervoor dat u de eigenschappen te wijzigen op basis van hun ondersteunde values.MyDCB.BaudRate = 9600MyDCB.ByteSize = 8MyDCB.Parity = NOPARITYMyDCB.StopBits = ONESTOPBIT ' Reconfigure COM1 op basis van de eigenschappen van de gemodificeerde DCB structure.Success = SetCommState ( hSerialPort , MyDCB ) Als Succes = False ThenThrow New CommException ( "Kan niet configureren COM1 " ) End If ' Haal de huidige time- out settings.Success = GetCommTimeouts ( hSerialPort , MyCommTimeouts ) Als Succes = False ThenThrow New CommException ( "Kan niet ophalen huidige time- out instellingen " ) End If ' Wijzig de eigenschappen van de opgehaalde COMMTIMEOUTS structuur waar nodig . ' WAARSCHUWING : Zorg ervoor dat u de eigenschappen te wijzigen op basis van hun ondersteunde values.MyCommTimeouts.ReadIntervalTimeout = 0MyCommTimeouts.ReadTotalTimeoutConstant = 0MyCommTimeouts.ReadTotalTimeoutMultiplier = 0MyCommTimeouts.WriteTotalTimeoutConstant = 0MyCommTimeouts.WriteTotalTimeoutMultiplier = 0 ' Configureer de time- out instellingen , op basis van de eigenschappen van de gemodificeerde COMMTIMEOUTS structure.Success = SetCommTimeouts ( hSerialPort , MyCommTimeouts ) Als Succes = False ThenThrow New CommException ( " Kan de configuratie van de time- out instellingen " ) End If ' gegevens naar COM1.Console.WriteLine ( " schrijven de volgende gegevens te schrijven COM1 : Test " ) Succes = WriteFile ( hSerialPort , Buffer , Buffer.Length , BytesWritten , IntPtr.Zero ) Als Succes = False ThenThrow New CommException ( " Kan niet schrijven naar COM1 " ) End If ' Lees gegevens uit COM1.Success = ReadFile ( hSerialPort , Buffer , BytesWritten , BytesRead , IntPtr.Zero ) Als Succes = False ThenThrow New CommException ( " Kan niet lezen uit COM1 " ) End IfCatch ex Zoals ExceptionConsole.WriteLine ( Ex.Message ) Eindelijk ' Laat de hendel los om COM1 . Succes = CloseHandle ( hSerialPort ) Als Succes = False ThenConsole.WriteLine ( " Kan vrij omgaan met COM1 " ) End IfEnd Probeer
7

Plak de volgende code onmiddellijk na de code die u in de ingevoegde " Module1.vb " bestand in Stap 6 :

Probeer ' parallel port.Console.WriteLine ( "Toegang tot de LPT1 parallelle poort ")' een handvat verkrijgen op de LPT1 parallelle port.hParallelPort = CreateFile ( " , LPT1 " , GENERIC_READ Of GENERIC_WRITE , 0 , IntPtr.Zero , _OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , IntPtr.Zero ) ' Controleer of de verkregen handvat is valid.If hParallelPort.ToInt32 = -1 ThenThrow New CommException ( " Onbekwaam om een handvat te verkrijgen om de LPT1-poort " ) End If ' Haal de huidige controle settings.Success = GetCommState ( hParallelPort , MyDCB ) Als Succes = False ThenThrow New CommException ( " Kan de huidige instellingen ophalen " ) End If' Wijzig de eigenschappen van de opgehaalde DCB structuur nodig . " WAARSCHUWING : Zorg ervoor dat u de eigenschappen te wijzigen op basis van hun ondersteunde values.MyDCB.BaudRate = 9600MyDCB.ByteSize = 8MyDCB.Parity = NOPARITYMyDCB.StopBits = ONESTOPBIT ' Reconfigure LPT1 op basis van de eigenschappen van de gemodificeerde DCB structure.Success = SetCommState ( hParallelPort , MyDCB ) Als Succes = False ThenThrow New CommException ( "Kan niet configureren LPT1 " ) End If ' Haal de huidige time- out settings.Success = GetCommTimeouts ( hParallelPort , MyCommTimeouts ) Als Succes = False ThenThrow New CommException ( "Kan niet ophalen huidige time- out instellingen " ) End If ' Wijzig de eigenschappen van de opgehaalde COMMTIMEOUTS structuur waar nodig . ' WAARSCHUWING : Zorg ervoor dat u de eigenschappen te wijzigen op basis van hun ondersteunde values.MyCommTimeouts.ReadIntervalTimeout = 0MyCommTimeouts.ReadTotalTimeoutConstant = 0MyCommTimeouts.ReadTotalTimeoutMultiplier = 0MyCommTimeouts.WriteTotalTimeoutConstant = 0MyCommTimeouts.WriteTotalTimeoutMultiplier = 0 ' Configureer de time- out instellingen , op basis van de eigenschappen van de gemodificeerde COMMTIMEOUTS structure.Success = SetCommTimeouts ( hParallelPort , MyCommTimeouts ) Als Succes = False ThenThrow New CommException ( " Kan de configuratie van de time- out instellingen " ) End If ' gegevens naar LPT1 schrijven . ' Let op : U kunt geen gegevens uit een parallelle poort te lezen door te bellen naar de ReadFile function.Console.WriteLine ( " schrijven de volgende gegevens naar LPT1 : Test " ) Succes = WriteFile ( hParallelPort , Buffer , Buffer.Length , BytesWritten , IntPtr.Zero ) Als Succes = False ThenThrow New CommException ( " Kan niet schrijven naar LPT1 " ) End IfCatch ex Zoals ExceptionConsole.WriteLine ( Ex.Message ) Eindelijk ' Laat de hendel om LPT1.Success = CloseHandle ( hParallelPort ) Als Succes = False ThenConsole . WriteLine ( " Kan handvat los te LPT1 " ) End IfEnd Probeer

Console.WriteLine
( " Druk op ENTER om te stoppen " ) Console.ReadLine ( )
8

Klik op de "Bouw " menu en selecteer de " Build Solution " optie . Klik op het menu " Debug " en selecteer de optie "Start" . De applicatie heeft nu toegang tot de seriële en parallelle poorten .

Previous: Next:
  Visual Basics Programming
·De Soorten lijnen in Visual Ba…
·VB.NET Client Server Programmi…
·Hoe u Windows Script Host 5.6 …
·Hoe te versturen Telnet-opdrac…
·Hoe te XML gebruiken in VB6 
·Hoe maak je grafieken maken me…
·Visual Basic 6 Step - by - Ste…
·Hoe maak je een WAV spelen in …
·Hoe kan ik een document met be…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een optie Box in Visual Basi…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe kan ik een afbeelding Box Maak in Vi…
  Programmering Articles
·Hoe te compileren en uitvoeren van progr…
·De rol en functie van Metadata 
·Hoe te Lambda verbinding in Python 
·Hoe maak je een wachtwoord in OpenLDAP V…
·Variabele Argument Lijsten voor Python 
·Hoe wijzig ik het wachtwoord met behulp …
·Hoe kan ik een Word- array in MIPS Creë…
·Hoe bewaart Handle MATLAB 
·Hoe te converteren naar PNG SVG in PHP 
Copyright © Computer Kennis http://www.nldit.com