Crash in Read() function on Windows 7

Problem: Intermittent crashes on Windows 7 in the Read() method.

Solution: Please install TConnector version 2.4.5, where this problem has been fixed.

In older versions you can use the following workaround: Before entering the Read() method, enable EscapeZeroBytes as follows:

TC2.EscapeZeroBytes (True)
Using this workaround take care with \ characters (if there are any). If the read data contains a single backslash \ it will be converted to a double \\.

Close() does not close a TCP/IP connection

With TCP/IP the Close() function internally marks a connection as to be closed but may not close it immediately.

You can fix the problem by setting the keep-alive time. Pass the keep alive time as second parameter behind the port number (separated by a #), see examples below:

<port>#1000
<port>#0

The system command line tool netstat will show you the list of actually opened connections.

Can I use TConnector within Microsoft .NET?

Yes - the Microsoft.NET framework offers a wrapper class for ActiveX® Controls. To host TConnector on a Windows form, you must generate a wrapper control that derives from System.Windows.Forms.AxHost.

The Microsoft .NET framework comes with a tool named Aximp.exe which converts type definitions in a COM type library for an ActiveX control into a Windows Forms control. You can reference this newly created library in your Microsoft .NET project or extend the toolbox.

Microsoft Access - Licensing with Autoexec Macro

Below we show you how to license at startup of the database. Create a new Module with the following function (in Microsoft VBA Editor):

Public Function LicenseTConnector()
 Dim TC As New TCONNECTOR2Lib.TConnector2
 TC.LicenseMe "Mem: Your Licensee Name", eLicKindDeveloper, 1, "Your Key", eLicProdStd
 Set TC = Nothing
End Function

Create a new Macro named "Autoexec" with the following settings:

Action = RunCode
Functionname = LicenseTConnector()
Use this method with Developer licenses only (this may not work with Site licenses or Single licenses). Don't forget to include a reference to the type library of the ActiveX® Control in the menu Tools -References (otherwise enumerations cannot be used). We recommend to password protect your VBA code in the project property window. With Site licenses you should temporarily disable UAC and then license the product manually in the license dialog. Distribution of the license via REG file (export/import) is possible on request.

Deployment of TConnector in MSIE web applications

If the ActiveX Control is used on client side (connecting to COM ports on client computer, not on server), it must be installed and licensed on client side.

Possibilities for installation:

MSI
The user can run the MSI file, which is provided by our setup. If you want, you can use also silent mode (no dialogs) and install the component without documentation/samples.

Run:    msiexec /i TConnector_Setup.msi ADDLOCAL=FeatTConnector /qn
Optional: add parameter INSTALLDIR=C:\MyApplicationPath for installation into a specific directory.

CAB
MSIE supports automatic installation of ActiveX Controls – all you have to do is to specify the download URL to a CAB file setup in the codebase attribute of the TConnector object - here is an example.

<OBJECT classid="clsid:126C289A-607B-4251-BF31-1555A5951948" id="TC2" 
CODEBASE="./ServerPathToCABFile/ TConnector2.CAB"
.. some more parameters...
</OBJECT>
If not installed, the TConnector2.CAB file is downloaded and executed by MSIE automatically (if security options allows).

A CAB file setup for TConnector is available on request. Please note that the CAB file contains only the TConnector DLLs without the VC++ Runtime (MSVCRT DLLs). If the VC++ Runtime DLLs are not present on the client system, the user (or Admin) has to run the Microsoft Visual C++ 2008 SP1 Redistributable Package (x86) separately: Download it from http://www.microsoft.com/downloads.

Licensing
Usually for web applications, you get one license key, which must be used for all clients.

Script
The license key must be applied programmatically to an instance of the TConnector object (LicenseMe function). This means you license in your program code on client side (e.g. in Javascript running in Browser or in VBScript running in browser). Possible for intranet applications.

LPK
An alternative (and recommended) way for web applications would be LPK licensing. On request you get an LPK file, which you have to store on the server. Then you add the following HTML object tag in your HTML code (on the page, where TConnector is used).

<OBJECT CLASSID="clsid:5220CB21-C88D-11cf-B347-00AA00A28331">
<PARAM NAME="LPKPath" VALUE="./ServerPathToLPK/TConnectorLicense.lpk">
</OBJECT>

This object is the built-in License Manager in MSIE. The parameter LPKPath must point to the download URL for the LPK file on your server. The license manager object reads the LPK file and licenses the TConnector object on the same page. The license is hidden to the users, ideal for internet usage, no licensing script must be executed. Note: LPK works with Mem: prefixed license keys only.