StrokeReader ActiveX - FAQ
Basic Troubleshooting
If you cannot get a response from your remote device:
- If you are working with physical serial port or with USB-to-serial port dongle, make sure you are using a proper ("straight-through" or "null modem") RS232 cable between your port and the remote device.
- For any USB devices (including USB-to-serial port adapters), always try to download the latest available drivers from the manufacturer's web site. Check you do not see a yellow exclamation mark against your USB device in the Windows Device Manager.
Debugging the Code: Checklist and Hints
- Ensure the number you specified in the Port property is correct. Windows may assign a new serial port number to the device after plugging it into a different USB port.
- Check you have set correct Baud rate and start/stop bit count.
- If the remote device requires DTR/RTS negotiation, check you have set proper DTR/RTS line states.
- Check the state of the Connected property.
- Check the Error property does not contain a nonzero value. The ErrorDescription property will contain a hint for your error.
- Make sure you closely follow the data exchange protocol described in the programmer's guide for your remote device.
A note for VBA developers: You will not receive any events from the ActiveX while staying in the debugger. Do not execute the code step-by-step by pressing F8 while you are expecting to receive data from the remote device.
Also, Excel will silently eat the ActiveX events if the Design Mode button on the Developer tab on the Ribbon is turned on.
If you are new to serial port programming and want to test your code, consider making a loopback connector.

Put a wire or a piece of aluminum foil between RX and TX pins (pins 2 and 3) of the serial port. Then use the Send() method of the ActiveX and the smallest possible event handler (see below) to receive the sent data back.
This is a VBA code to test your loopback connection:
Private Sub CommandButton1_Click()
StrokeReader1.Send ("ABCD")
End Sub
Private Sub StrokeReader1_CommEvent(ByVal Evt As StrokeReaderLib.Event, _
ByVal data As Variant)
If Evt = EVT_DATA Then
s = StrokeReader1.Read(TEXT)
MsgBox s
End If
End Sub
Or, if you are expecting to receive some binary codes which cannot be displayed by the MsgBox call, use the following example:
Private Sub CommandButton1_Click()
StrokeReader1.Send Chr(13) & Chr(10)
End Sub
Private Sub StrokeReader1_CommEvent(ByVal Evt As StrokeReaderLib.Event, ByVal data As Variant)
If Evt = EVT_DATA Then
s = StrokeReader1.Read(BINARY)
Dim xs As String
For Each x In s
xs = xs & Hex(x) & " "
Next
Debug.Print xs
End If
End Sub
To view the output of the Debug.Print, press Ctrl+G or execute View->Immediate Window from the VBA menu.
Other Technical Questions
ActiveX controls stopped working in Microsoft Office
You need to delete .exd files in %appdata% and %temp% folders. For more information, visit TechNet and Stack Overflow.
I cannot get a response from modem
If you can talk to modem from any terminal program but not from the ActiveX, make sure you are sending <CR><LF> codes after the commands.
I cannot receive anything from a remote weighting device using the ActiveX but I can receive data using HyperTerminal
Please ensure you have set the correct states for the DTR/RTS lines.
How to poll multiple serial ports at the same time?
You may use multiple serial port ActiveX controls at the same time. Each ActiveX instance has it's own CommEvent procedure:

An another way to poll multiple ports is to dynamically switch between them by changing value of the Port property of a single ActiveX control.
How to Submit a Bug Report
Make sure you have read the relevant documentation: API documentation, Release notes, Demo version functionality notes.
When submitting a bug report, please:
- Include a copy of your license key. We do not provide support for demo version users;
- Specify the product version (like StrokeReader 2.1);
- Specify the OS version (like Win7 SP1);
- Include the full name and version of the container program (like Excel 2010);
- Include a list of hardware that is used with the ActiveX;
- Include a test code that may help to reproduce your problem - small as possible. We do not accept pre-built executables;
- For compiler errors, VBA runtime errors and C# exceptions, please include a screenshot of the IDE window with the error message and with the highlighted code line that causes the error/exception;
- A screenshot of the ActiveX Properties Window or values of properties that you have modified.
Licensing/Billing
Do I need to pay monthly/yearly?
No. All our major version licenses are permanent (one-time purchase for long-term use). There are no subscription plans.
Can I download and test full version before purchasing it?
No.
Can I upgrade a previously purchased license?
Yes, can upgrade Single User->Developer. You only need to pay the difference. Please contact us via this page.
Do I need Internet access to activate the software?
The Single-user license requires activation. You can obtain the activation code using any other PC or phone that is connected to the Internet.
The Developer license does not require activation, and you do not need the Internet access.
How to upgrade to StrokeReader V3?
Everybody, who wants to upgrade, must accept the license agreement and renew the license key(s).
To renew your key(s), send us a message containing your current V2 license key(s) from the email address you specified when ordering the Software. We will renew your keys in 4 (four) business days.
- We upgrade licensed version 2 users for free.
- We upgrade V2 redistribution keys for developers for free.
- We *DO NOT* provide free upgrades for users who violated the EULA.
Do I really want to upgrade from a previous version?
- From V1 - yes, definitely.
- From V2 - only if you want to continue to receive support.