Created
November 13, 2012 16:02
-
-
Save alanstevens/4066600 to your computer and use it in GitHub Desktop.
Code snippet from here: http://support.microsoft.com/kb/823179
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' This sample from Microsoft does not work on Windows 7 or Server 2008 | |
' Calls to OpenFile and WriteFile fail silently | |
' The API calls are supposedly supported in Win 7 and Win 8 | |
' Please offer any suggestions in comments | |
' Obtain a handle to the LPT1 parallel port. | |
hParallelPort = CreateFile("LPT1", GENERIC_READ Or GENERIC_WRITE, 0, IntPtr.Zero, _ | |
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, IntPtr.Zero) | |
' Verify that the obtained handle is valid. | |
If hParallelPort.ToInt32 = -1 Then | |
Throw New CommException("Unable to obtain a handle to the LPT1 port") | |
End If | |
' Retrieve the current control settings. | |
Success = GetCommState(hParallelPort, MyDCB) | |
If Success = False Then | |
Throw New CommException("Unable to retrieve the current control settings") | |
End If | |
' Modify the properties of the retrieved DCB structure as appropriate. | |
' WARNING: Make sure to modify the properties according to their supported values. | |
MyDCB.BaudRate = 9600 | |
MyDCB.ByteSize = 8 | |
MyDCB.Parity = NOPARITY | |
MyDCB.StopBits = ONESTOPBIT | |
' Reconfigure LPT1 based on the properties of the modified DCB structure. | |
Success = SetCommState(hParallelPort, MyDCB) | |
If Success = False Then | |
Throw New CommException("Unable to reconfigure LPT1") | |
End If | |
' Retrieve the current time-out settings. | |
Success = GetCommTimeouts(hParallelPort, MyCommTimeouts) | |
If Success = False Then | |
Throw New CommException("Unable to retrieve current time-out settings") | |
End If | |
' Modify the properties of the retrieved COMMTIMEOUTS structure as appropriate. | |
' WARNING: Make sure to modify the properties according to their supported values. | |
MyCommTimeouts.ReadIntervalTimeout = 0 | |
MyCommTimeouts.ReadTotalTimeoutConstant = 0 | |
MyCommTimeouts.ReadTotalTimeoutMultiplier = 0 | |
MyCommTimeouts.WriteTotalTimeoutConstant = 0 | |
MyCommTimeouts.WriteTotalTimeoutMultiplier = 0 | |
' Reconfigure the time-out settings, based on the properties of the modified COMMTIMEOUTS structure. | |
Success = SetCommTimeouts(hParallelPort, MyCommTimeouts) | |
If Success = False Then | |
Throw New CommException("Unable to reconfigure the time-out settings") | |
End If | |
' Write data to LPT1. | |
' Note: You cannot read data from a parallel port by calling the ReadFile function. | |
Console.WriteLine("Writing the following data to LPT1: Test") | |
Success = WriteFile(hParallelPort, Buffer, Buffer.Length, BytesWritten, IntPtr.Zero) | |
If Success = False Then | |
Throw New CommException("Unable to write to LPT1") | |
End If |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I found the solution here: http://blogs.lessthandot.com/index.php/DesktopDev/MSTech/printing-to-a-zebra-printer