I am working with a pos printer and customer display. My computer have only one com port com1. So I coudnt connect both directly to my computer, fortunately the customer display has a RS232 connector for my printer and by passing option to send data.
After I installed the printer driver. I coudnt use MScomm control to send data to customer display. After that I create a virtual comm port com5 and send data to customer display by following code.
The form contain a comm control , name=MScomm1, CommPort=5
Code:
Public Sub disInCusDis(disStr As String)
DefineDosDevice DDD_RAW_TARGET_PATH, "COM5", "\Device\Serial0"
'defining a virtual com port with name com5
'the reason is that i coudnt open com1.Because the driver took that
MSComm1.PortOpen = True
MSComm1.Output = Chr(27) + "=" + Chr(2) 'for display, dont mesh up
' with this .this is not vb
MSComm1.Output = Chr(27) & "@" ' To clear display
MSComm1.Output = disStr
MSComm1.Output = Chr(27) + "=" + Chr(1) 'to bypass customer dis
MSComm1.PortOpen = False
DefineDosDevice DDD_RAW_TARGET_PATH, "COM1", "\Device\Serial0"
'now driver has com1 port
End Sub
Public Sub printByPosPrint(prntStr As String)
Printer.Print prntStr
Printer.EndDoc
end sub
now both are working. But when the application run sub disInCusDis(). The printer print earliar lines. When I using again and again, the all the lines are print again again with my current printing
How can I stop?
I think that when i redefine the "\Device\Serial0" The windows lost the control and send all the data that has.
If any one have any idea pls tell me.