FAQs

This is the place to find support options and answers to our most frequently asked questions.

FAQs

The following are FAQs about QWS3270 and QWS3270 Secure

Table of Contents
New to QWS3270?
I have QWS3270/Secure installed. Now what?

The information in this section applies to new installations. If you’re already familiar with the program, you probably won’t need to read this.

QWS3270 and QWS3270 Secure are TN3270 terminal emulators allowing you to connect to IBM mainframes. So, how do you do that? There are two things essential to any connection that you will need:

  • the host name or IP address of the mainframe you want to connect to
    (you could compare that to the address of an apartment building or to a URL in your web browser)
  • the port number you want to connect on
    (if the host name is the address of the apartment building, the port number would be the apartment number)

If you don’t have this information, you will need to contact your mainframe administrator or someone from your company before you continue. Sorry but we do not have this information for you. Mainframe host names are as unique and diversified as web addresses and we don’t have a list of all web pages either.

If you have the host name, let’s create a session. If you would like to know more about that check out the section ‘Why Sessions?‘. Basically we do this so that we don’t have to enter any information more than once.

Start the program by double-clicking the shortcut the installer created for you on your desktop. When the program starts you will see the ‘New Session Wizard’. You could dismiss this wizard and set up your session manually but to make it easy, we’ll use it for now. If the wizard did not start automatically you can always display it by clicking on the ‘QWS3270/New Session Wizard’ menu item.

Click ‘Next’ on the information page to get to the good parts. The first thing we will need is the host name or the IP address of the mainframe you want to connect to. The host name will be in a format similar to ‘jollygiant.dnsalias.com’. If you don’t have one yet or just want to play a bit, feel free to use that one to test the connection.

Alternatively you could enter the IP address of the mainframe. An example of an IP address would be ‘168.192.15.187’. The problem with an IP address is that it can change, and that it’s much harder to remember than the host name. You should always use the host name if possible.
After entering the host name click ‘Next’ and select the port number. The default port for telnet connections is 23 but it is possible for your mainframe administrator to select a different one for TN3270 connections, so be sure to check.

Click ‘Next’ again. Now you can select the display size. The default is 24×80 which is 24 rows by 80 columns. This size is supported by all mainframes and it will probably work for you. If you select any of the other sizes the program will try to use that size but the mainframe is free to deny that request and use a different size so unless you are sure of what you’re doing you should stick with the default for now.

Click ‘Next’ and the wizard will ask for one more item: a session name. This name is used to identify your session later when you want to connect to it, so it should be something that reflects information about your session. If you only need one session (in other words, if you only ever connect to one host), the name probably doesn’t matter but imagine having dozens or more and all of a sudden S1, S2, and S3 don’t work so well anymore.

After typing a name for your session, click ‘Next’. The session name must be unique so if you already have a session with the same name or if the name is invalid for some other reason, the program will display a message and you can try again. Otherwise, click ‘Finish’ to create your session and exit the wizard.

Now that we have a session, how do we use it? Click on the ‘Connect’ button on the toolbar (that’s the one all the way on the left) or use the ‘QWS3270/Connect’ menu item. Either one will display a dialog that allows you to select a session to connect to. In the dialog, select the session we just created (you remember the name don’t you?), and click on the ‘Connect’ button. If you didn’t make any mistakes when you entered the host name or the port number the program should now be connected and display the mainframe’s logon screen.

See also:
Why do I need to create sessions? What are they good for?
I am unable to connect to my mainframe, what could be wrong?

Technical
How do I fix an error with MSVCP140.dll when installing QWS3270?

If you receive the following error during installation, then you’ll need to install the Microsoft C++ Runtime libraries which can be found here: https://aka.ms/vs/16/release/vc_redist.x86.exe

“The code execution cannot proceed because MSVCP140.dll was not found”

QWS3270 is unable to connect to my mainframe. What could be wrong?

Hostnames and ports
The most common reasons for a connection to fail are an incorrect host name or a wrong port number so be sure to verify that information with your mainframe administrator first. Once you are certain that the information is correct and you have checked for spelling mistakes, then check for the following:

Firewalls, routers and internet security programs
Most firewalls allow connections to port 23, the default telnet port. If you have a firewall installed (that includes the Windows default firewall and any Internet Security programs) or if you have a hardware router, verify that they allow connections on the port that you specify for your session especially if you are not using the default port. Check the manuals or help files for your firewall or router to find out how to allow anew program to connect to the Internet.
Finally, it is possible that the host you are trying to connect to is down. If you have more than one session, try to connect to one of the others. If you don’t have another session, you can quickly create a new session. Call the new session ‘Test’ and use ‘jollygiant.brandonsystems.com’ (without the quotes) for the host name. Leave the port at 23 and try to connect to that session.

What are the command line options for QWS3270 and how can I use them?

The most common use for command line options is to modify your desktop shortcut(s) to connect to a session without having to select the session from a list. You can place multiple shortcuts to the program on the desktop and change the command lines for them to point to different sessions.

Let’s say you have just installed the program and create a session called ‘work’ and another one called ‘fun’. Right-click on the shortcut on your desktop to the program and choose ‘Properties’ from the menu. On the ‘Shortcut’ tab, find the ‘Target’ box. It will have a path to the program in it similar to this:

“C:\Program Files\QWS3270\QWS3270p.exe”
Click anywhere in that box and move the cursor all the way to the end. Press the spacebar once and add -zwork at the end so the whole thing reads:
“C:\Program Files\QWS3270\QWS3270p.exe” -zwork
Copy the shortcut and place it on the desktop so that you have two of them. Right-click on the copy and choose ‘Properties’. On the shortcut tab in the target box, change the ‘-zwork’ to ‘-zfun’. Click OK to go back to the desktop. Now rename the first shortcut to ‘Work’ and the second one to ‘Fun’.

You can now connect to either your ‘Work’ or your ‘Fun’ session by simply double-clicking the corresponding shortcut.

Other command line options are:

  • C:\Program Files\QWS3270\QWS3270p.exe HOST [PORT]
    where ‘HOST‘ is the actual host name or IP address of the mainframe you want to connect to and PORT is the (optional) port number for that host.
  • C:\Program Files\QWS3270\QWS3270p.exe -dDIRECTORY
    where ‘DIRECTORY‘ is the fully qualified path to a directory in which the program will look for its configuration files.
  • C:\Program Files\QWS3270\QWS3270p.exe -sFILE.NAME
    where ‘FILE.NAME‘ is the fully qualified script file name to executed. The application will attempt to execute this script file when the application is started.

For more information on how to use command line options, please see the help file included with the program.

Can I automate repetitive tasks?

Certainly, you can. There are several different ways to do this depending on the tasks you want to automate and the amount of learning you want to expend.

Scripting

Probably the simplest way to automate tasks is our built-in scripting language. It allows you to enter data, send keys, send and retrieve files, etc. It is easy to learn, does not require any tools (other than a simple text editor), and is quite flexible. Let’s take a look at a simple example script to enter your user name and password.

Open a new text file in Notepad and insert the following lines:

type “username”
key “tab”
type “mysupersecretpassword”
key “enter”

This script assumes that you are at the logon prompt and that the cursor is already at the user name entry field. It then proceeds to enter your user name, sends a tab key to move to the next entry field, enters your password, and sends the ‘Enter’ key to the host. This is of course not very secure but you can easily modify this script to prompt you for a password each time so that it will not be stored openly in a text file.

For detailed information on scripting and a list of all script commands, please consult the help file included with the program.

HLLAPI

If you know, or are willing to become familiar with, a programming language such as Microsoft Visual Basic, HLLAPI allows you to ‘remote control’ the emulator from a custom program. While this requires more work than a simple script, it also allows you to do things that our scripting language cannot such as performing calculations, reading and writing files, etc.

For details on HLLAPI programming, see ‘What is HLLAPI?‘ or consult the help file included with the program.

COM Automation

Our COM library is based on the HLLAPI protocol. It can be used with scripting languages such as Visual Basic Script, JavaScript, and others that allow the creation of COM objects.

For details on COM programming, consult the help file included with the program.

I want to connect immediately when the program starts. Can I do that?
The simplest way is to modify the desktop shortcut to the program to include a session as a command line parameter (for an example see Command line options)
Why do I need to create sessions? What are they good for?

If you only ever connect to one mainframe, you may not immediately see the advantage of using multiple sessions but if you have more than one host to connect to you will quickly appreciate them.

Each session defines one connection to a host and all the associated options. This allows you to create a multitude of connections not only to different hosts but even to the same host with different options. Each session can have different colors, screen sizes, fonts, file transfer options, etc. You can have a different printer attached to each one or use different mouse options. Depending on the work you may need to do on the mainframe, you could create sessions with different keyboard mappings, one for each type of work. And of course you can have sessions connect to different hosts or different port numbers.

One ‘special‘ session is what we call the default session. This default session is the one that all other new sessions are based on. E.g. if you know that you always want to use a certain font, specify that font in the default session and all new sessions will automatically use that font. The same goes for all the other session options you can set.

To access the default session, start the program but do not connect to a host. If you are already connected, simply disconnect. Then use the Options/Session menu item to display the session options dialog. The title of the dialog, normally “Session Options for ‘Session Name’ “, will now be “Session Options for ‘Default’ “.

Note that changing the default session options does not affect any options that have been changed in any of the sessions you created earlier, only sessions you create from that point on.

The default session is also the one that the program will attempt to connect to if the ‘Auto Connect’ option is turned on so if you want to use ‘Auto Connect’, be sure you specify a valid host name and port number for the default session.

You can find the ‘Auto Connect’ option in the Options/Application dialog.

How can I make QWS3270 start by clicking on a link in my browser?

You can integrate the program with your browser by following these steps:

  1. Start Windows Explorer and select the “Tools / Folder Options” menu item
  2. Click on the “File Types” tab
  3. Select the file type “URL: TN3270 Protocol”. You may have to scroll down. Please note that different versions of Windows sort the list in different orders
  4. Press the “Advanced” button
  5. Select the “open” item in the Action list box and press the “Edit” button
  6. Select the “Browse” button
  7. Navigate to the directory where the program is installed (“e.g. C:\Program Files\QWS3270”) and select the main executable file and press OK
  8. Click the “Application used to perform action:” field and move the cursor to the end of the field
  9. Type ” %l %1″ at the end of the field (space, per cent sign, lower case l, space, per cent sign, number 1)
  10. Press the OK button twice
  11. Press the Close button

Now when you select a “tn3270://….” type link in the browser, the program will automatically start and attempt to connect to the host.

Where are the session options stored?

By default, QWS3270 uses session files (one file for each session plus one for the default session). These files are stored in the user’s home folder (C:\Documents and Settings\<user name>\Application Data\Jolly Giant Software\<program name>\, or C:\Users\<user name>\AppData\Roaming\Jolly Giant Software\<program name>). This allows you to easily share sessions between users by simply copying and pasting these files. You can also start a session by simply double-clicking on the session file. The program associated with the session files will start and connect to the host specified for the session.

In earlier versions session settings are stored in the Windows registry under HKCU\Software\Jolly Giant\<program name>. Still older versions used an .ini file stored in the installation folder.

You can determine where your parameters are being stored by using the Options/Application dialog. The ‘Session Settings Location’ option will tell you where the session settings are stored on your machine.

I want to share my QWS3270 sessions with other users. Can I do that?

This depends on where your session options are stored. If the program is using session files, you can simply copy and paste these files between users. See ‘Where are the session options stored?‘ for details on session settings.

My screen prints are hard to read on my color printer. How do I fix that?

When printing a screen, the program will ignore the background color and only print the display text in the same color as it is shown on the screen except for white text which will be converted to black automatically. But while a light blue text may look great on a dark purple background, it will be hard to see on white paper.

To fix this problem, you can either choose different colors for your screen text or you can turn off color printing in the program.

See also:
Can I print in black & white?

Why can't I pick a font that I know is installed on my system?
The program only uses Monospaced fonts, also called ‘fixed pitch’, ‘fixed width’ or ‘non proportional’ fonts.  What that means is that every character in the font has the same width.

Not all fonts on your system are fixed width.  Fonts that do not fit this description will not be shown in the font selection dialog, so you will not be able to pick them.

There are many sites on the Internet where you can download inexpensive or even free fixed width fonts.  You should be able to find them with your favorite search engine or by using this link: Google search for free Monospaced fonts

The caret ('^' ) character doesn't work the way it used to. Can I go back to the old way?

Up to version 3.9, our programs always translated the ‘^’ (Shift + 6 key on most keyboards) from the caret character to the logical not sign ( the sideways L ‘^ ‘). This was done because on a TRUE 3270 keyboard the logical not sign was the Shift + 6 key.

Starting with QWS3270 version 4.0, we are no longer doing this translation. When the user presses the shift 6 key, the caret character (^) will be sent to the host. This change was made at the request of several of our large site license customers.

The reason that we changed the codepage CP 037 definition to match the “TRUE” code page translation is that some users were transferring files using IBM’s IND$FILE from the mainframe to the PC. Because we had changed the translation of the logical not sign (EBCDIC x’5f’) from ASCII x’AC’ to the ASCII character ^, the file on the PC did lot “look” correct as all logical not characters were actually translated to the caret character. For this reason, we decided to include the “true” translation table.

The bad news is that this caused the shift 6 character to send the caret character to the host instead of the logical not sign. We did modify the keyboard re-mapping routines to allow the “Not Sign” to be assigned to a key.

However, if you still want ‘^’ (Shift + 6 key) to be translated to the logical not sign, you can remap it via “Options/Keyboard/Remap Key”

I have a problem with the trial version. How do I fix it?
If the pre 5.0 trial version does not install or does not work after the installation (Crypkey Licensing Service is not running)

  1. You must have administrator rights to install the trial version. If you did not have administrator rights during the installation, please log in as admin and try reinstalling the application as admin. Also, the trial version can only be installed on a local hard drive, not a network drive. If you tried to install the application on a network drive, please try reinstalling on a local drive.
  2. This may fix the problem already, so you may want to try running the application again at this point.
  3. If the above does not apply or did not fix the problem, go to the Windows Services control panel applet or ‘Services’ under Administrative Tools.
  4. Open Services and make sure the “Crypkey Licensing” service is installed and running. If it is not installed, go to the folder where you installed the trial version and run Setupex.exe (Note: you will need administrator rights to install this file correctly). If the service is not running, right-click on the service and select ‘Start’.
  5. In you Windows directory, run the program CKconfig.exe. Make sure one of the paths listed by this program is the path to the install directory of your trial program. If the path is not in the list, you can add it using the ‘Add’ button.
  6. Reboot your computer.
My font size changes unexpectedly. How do I stop that?
Choosing a font for your session will not only affect the way the display looks and feels but also the window size.

Your first choice when it comes to picking a font is between True Type fonts and Bitmap fonts. True Type fonts can easily be resized while Bitmap fonts come in a limited number of sizes.

When using a True Type font (any font that is prefixed with TT or an O in the font selection dialog), the program will automatically adjust the font size to match the window size. In other words, if you make the window smaller or larger or if you maximize the window, the font will get as large as possible to still display all lines and columns in the window.

If you choose a bitmap font the program will not adjust the font size. If you make the window larger than needed for the current font size, the display will be centered in the QWS3270 window. The program will not allow you to make the window too small for the current font size.

Here is how you can change the font for your session and how your choices will affect the window size:

Connect to the session you want to change the font for. Use the Options/Session menu item to display the ‘Options’ dialog for your current session. Select the ‘Display’ option on the left, then click ‘Select Font’. Choose a font from the list of ‘fixed width’ fonts installed on your system. This means that not all fonts you have installed will show up in the list. A ‘fixed width’ font means that all characters have the same width. Select a font size and click OK to return to the Options dialog. Click OK again to save your changes.

The font size in the program can change when the host has switched to or from an alternate screen size. When the host switches screen sizes (e.g. from 24×80 to 27×132 or vice versa), the program needs to display either more or less information. In order to do that it needs to either change the font size or change the window size.

What happens in that case depends on a number of factors but mainly on the font type being used (a True Type font will behave differently from a Bitmap font) and on the window size and state (is it maximized already? Will the new content fit on the screen?).

When going from a small display size to a larger one, the window size must be increased or the font size decreased. You can control what happens with the option ‘Save window size when host changes screen sizes’ in Options/Session/Display. When this option is checked, the font size will change but the window size will remain constant. If it is unchecked, the program will try to adjust the window size to the new display size using the selected font.

If the window is already using most of the desktop and the display size is increased, the new window may not fit on the desktop anymore. In that case, the program will maximize the window and use the largest font size possible to still display all the information.

Can I print in black & white?

By default the program attempts to print screen shots in color. Sometimes this may not be wanted to avoid the waste of expensive ink to print backgrounds or text in color. Also some black and white printers will make an attempt at rendering color in shades of grey. This causes QWS3270 to detect these printers as color printers which causes the screen prints to be printed in these shades of grey and makes them hard to read.

You can disable color printing on a per-sessions basis by selecting ‘Black & White’ in the Options/Session/Printer dialog.

Sometimes I can't enter anything into a field. What could be wrong?
The problem of not being able to enter input in the last columns on the right of the screen is most likely caused by the ‘Entry Assist’ option being turned on in conjunction with the ‘Word Wrap’ option.  You can see if this is the case by checking the status bar of the program.  If ‘Entry Assist’ is turned on, the second panel in the status bar (from the left, to the left of the cursor position) will display the text ‘DOC’ or ‘DOCw’ when ‘Word Wrap’ is also turned on.

The default shortcut key to toggle ‘Entry Assist’ on or off is Ctrl-A (Ctrl-W for ‘Word Wrap’).  Turning on ‘Word Wrap’ will automatically activate ‘Entry Assist’ and turning off ‘Entry Assist’ will also deactivate ‘Word Wrap’. Sometimes you could hit these key combinations by accident when trying to copy or paste with Ctrl-C/Ctrl-V.

When the problem happens, simply turn ‘Entry Assist’ off by using the Ctrl-A combination.  If the problem repeats, you may want to change the Ctrl-A and/or Ctrl-W key combinations to something other than their defaults.  Most of the time though it is enough to be aware of the problem and how to fix it.

It is also possible that you are trying to enter data into a protected field or that you are trying to enter character data into a numeric field.

I'm always getting disconnected. What's up with that?

The thing to keep in mind if you are getting disconnected from the host is this: the program does not close the connection on its own. Never. If you are getting disconnected, there are 3 likely reasons for that:

  1. The mainframe itself may be closing the connection if there is no user activity for a period of time.
  2. The disconnect may be caused by a hardware router. Many routers have options to close inactive connections after a period of time.
  3. A firewall is closing the connection. Some firewalls may also have options to close connections if no activity has been detected for a specified time period.

Of course this problem could also be caused by a hardware problem such as a defective network card, network cable, etc, but this happens only rarely.

If the cause of the disconnect is inactivity, you could try using the idle time options in the program. To do this follow these steps:

  • You can use the Options/Session dialog to set keep-alive options. Set the keep-alive time to something less than the idle time before your connection times out. First try “Use TCP/IP” keep-alive option, then “Use NOP” (which is the telnet NOP command). The host is in theory free to ignore these, so you may have to experiment a bit with these options. If neither of them work for you, see the further instructions below.
  • Connect to the host
  • Click on Options/Session menu item
  • In the session options dialog, choose the ‘Miscellaneous’ item
  • In the ‘Session Idle Time’ field, enter a time (in minutes) that is a bit lower than the time the connection has to be idle before the drop happens. In other words, if you are getting disconnected after 10 minutes of inactivity, enter ‘8’ or ‘9’ into that field.
  • Choose a key from the ‘Session Idle Key’ field. This is the key that the program will send to the host after the idle time has expired. If you set the idle time to 5 minutes and no activity happens on the session for 5 minutes, the program will automatically send this key to the host.
  • Choose OK to close the dialog. Please be aware that the key sent to the host will have the same consequences as if you had pressed the key manually so if you entered some data on the screen and the program send the Enter key to the host, the data will be sent just as if you had pressed Enter manually. The best key for the ‘Session Idle Key’ is a key that does not prompt the host into any kind of action. What this key may be differs from host to host.
What are session layouts and how do I use them?
Session layouts allow you to open multiple sessions at the same time and arrange them on the screen.

To create a session layout, connect the sessions you want to include in the layout and position them on your screen.  In any one of the sessions, click the QWS3270/Save Session Layout menu option.  Choose where you want to save your layout file and enter a name for it and then save the file.

You can open the layout either from within any QWS3270 instance (QWS3270/Open Session Layout) or by simply double-clicking on the layout file.  The program will open the sessions and attempt to connect to them and arrange them on the screen the way they were when you saved the layout.

If the trial version only works for a short period (Initialization files have been moved or tampered with)
The trial versions of our programs are supposed to work for 30 days. Sometimes you may get a message when attempting to start the program saying that some files have been moved, corrupted, or been tampered with. This is usually due to a disk defragmentation program physically moving the files around on the hard drive. There is nothing you can do at that point, as even if you reinstall the program successfully, the error would most likely happen again the next time the defragmentation program runs.

If you get this error, please contact us atsupport@jollygiant.com, and we will attempt to reactivate your trial.

How can I run QWS3270 on a virtual machine?

If you plan to install QWS3270 on a virtual machine, you must run it in remote mode. This will allow multiple users to use the software on that VM without having to enter a license key every time. Here are the steps to accomplish this:

  • Make sure your VM is set up so that multiple users can connect simultaneously.
  • Install QWS3270 on the VM as a local admin.
  • Put the license key into a text file called “license_v2.txt” and place this in the folder “C:\ProgramData\Jolly Giant Software\QWS3270 Secure”.

Note that each user will have their own folders for session (host connection) files. They will also have their own folders for other files such as key mappings and layouts.

Automation
Do you have any samples for automating the program?

You can download our sample programs by following these links:

HLLAPI
Specifications and Help File
Microsoft Visual Basic
C (Win32)
C++

COM Automation
API Documentation
JavaScript
Microsoft VB Script
Microsoft Visual Basic
C# (.NET)

What is HLLAPI and what can it do for me?

HLLAPI (High Level Language Application Program Interface) is a standard developed by IBM allowing a program to communicate with a 3270 emulator through a set of predefined functions. You can use HLLAPI to access the host presentation space.

We have developed several HLLAPI sample applications to help get you started with your own program. You can download these samples as well as more information on HLLAPI here.

See also:
Do you have any samples for automating the program?
Can I automate repetitive tasks?
Can I use Excel to automate data entry?

Can I use Excel to automate data entry?

Yes, you can use Automation to communicate from Excel and other VBA enabled applications with your QWS3270 session. Here is a quick walkthrough on how to do this with Excel.

Create a session in QWS3270 and set the HLLAPI session ID to ‘A’ (Options/Session/Connection). We’ll call this session ‘Test’. Make sure the session will connect manually to a host and then you can close QWS3270.

Start Excel. Click ‘Tools/Macros/Visual Basic Editor’, or hit Alt + F11.

In the VBA editor, click ‘Tools/References’. In the list of available references, find and check ‘QWS3270 Automation 1.0 Type Library’ and click OK. If you don’t see the type library in the list, you need to install a recent version of QWS3270 or Secure (version 4.0 or later).

Sample code (error checking omitted for brevity)

Add a user form to the editor and add three buttons:

  • Button one: btnStart, “Start QWS”
  • Button two: btnScreen, “Get Screen”
  • Button three: btnQuit, “Close and Exit”

In the ‘General Declarations’ section of the form, add the following code:

Option Explicit
Private app As QWS3270AUTOMATION.Application
Private screen As QWS3270AUTOMATION.screen

In the ‘UserForm Initialize’ section, add this code:

Private Sub UserForm_Initialize()
Set app = New QWS3270AUTOMATION.Application
Set screen = New QWS3270AUTOMATION.screen
End Sub

Add the following code to the btnStart click event:

Private Sub btnStart_Click()
If app Is Nothing Then
MsgBox (“No ‘application’ object”)
Exit Sub
End If

Call app.StartSession(“C:\Program Files\QWS3270\qws3270p.exe”, “Test”)
End Sub

Make sure to adjust the program location and session name above according to your setup, and add this code to the btnScreen click event:

Private Sub btnScreen_Click()
Dim bufsize As Integer
Dim buffer As String
Dim session As QWS3270AUTOMATION.session
Dim rows As Integer
Dim current As Integer

rows = 24
Set session = New QWS3270AUTOMATION.session
If session Is Nothing Then
MsgBox (“No ‘session’ object”)
Exit Sub
End If

Call session.Connect(“A”)

If screen Is Nothing Then
MsgBox (“No ‘screen’ object”)
Exit Sub
End If

bufsize = 4000
buffer = Space(bufsize)
Call screen.Get(buffer, bufsize)
MsgBox (buffer)
For current = 1 To rows
Sheet1.Cells(current, 1) = Mid$(buffer, (current – 1) * 80 + 1, 80)
Next current
End Sub

Add this to the btnQuit click event:

Private Sub btnQuit_Click()
If app Is Nothing Then
MsgBox (“No ‘application’ object”)
Exit Sub
End If

Call app.Close(“A”)
End Sub

And finally, add this to the form’s ‘Terminate’ event handler:

Private Sub UserForm_Terminate()
If Not app Is Nothing Then Set app = Nothing
If Not screen Is Nothing Then Set screen = Nothing
End Sub

Compile and run the sample. Click the ‘Start QWS’ button and wait until the program has started and the session is connected to the host. Then click the ‘Get Screen’ button. You should see the contents of the QWS screen in a message box and also in a sheet called ‘Sheet1’, 80 characters per cell. Click the ‘Close and Exit’ button and the QWS session should close and QWS should exit.

Things to remember:

  • You can only do something with a QWS session from your program if you are ‘connected’. Each session can have an identifier (one character) called the HLLAPI session ID. You connect to a session by specifying this ID. So you can connect to one session, manipulate it, disconnect from it (this does not mean the session will disconnect from the host), connect to another session and do something with it, reconnect to the first one, etc. But if you are not ‘connected’, calls to the session will fail.
  • Each session must have a unique ID so you can control which session you connect to. Trying to start two QWS3270 sessions with the same HLLAPI ID will fail even when you start the sessions from within QWS.
  • Buffers must be created and initialized within your program.
    INCORRECT:
    Dim s as string
    Call screen.Get(s)CORRECT:
    Dim s as string * 2000
    or
    Dim s as string
    s = space(2000)
    Call screen.Get(s)
  • The maximum screen size is 27 * 132 so a buffer size of 3,600 should be safe for any screen if you just want the contents. If you also want attribute bytes then double the buffer size. Normal screen size is 24*80 for an IBM-3278-2 terminal.
  • VB treats strings differently than an emulator. Getting screen text should be fine but if you get attributes, be aware that these can (and probably will) contain NULL characters so VB will think that the string ends there while in reality there is more data in the string. In these cases treat the string as an array of bytes instead.
  • In the VBA editor, check out the Object Browser (View/Object Browser, or F2). If you select the QWS3270 Automation object in it, you can see the interfaces (screen, application, field, etc.), and the functions each interface supports and what parameters they take. This can be a big help. Also check out the section in the program’s help file on COM Automation.
  • Do not use this sample as is! This code needs much more error checking but it should give you a basic idea what you can do with the Automation feature.
Can I use Excel to automate data entry?

Yes, \you can use Automation to communicate from Excel and other VBA enabled applications with your QWS3270 session. Here is a quick walkthrough on how to do this with Excel.

Create a session in QWS3270 and set the HLLAPI session ID to ‘A’ (Options/Session/Connection). We’ll call this session ‘Test’. Make sure the session will connect manually to a host and then you can close QWS3270.

Start Excel. Click ‘Tools/Macros/Visual Basic Editor’, or hit Alt + F11.

In the VBA editor, click ‘Tools/References’. In the list of available references, find and check ‘QWS3270 Automation 1.0 Type Library’ and click OK. If you don’t see the type library in the list, you need to install a recent version of QWS3270 or Secure (version 4.0 or later).

Sample code (error checking omitted for brevity)

Add a user form to the editor and add three buttons:

  • Button one: btnStart, “Start QWS”
  • Button two: btnScreen, “Get Screen”
  • Button three: btnQuit, “Close and Exit”

In the ‘General Declarations’ section of the form, add the following code:

Option Explicit
Private app As QWS3270AUTOMATION.Application
Private screen As QWS3270AUTOMATION.screen

In the ‘UserForm Initialize’ section, add this code:

Private Sub UserForm_Initialize()
Set app = New QWS3270AUTOMATION.Application
Set screen = New QWS3270AUTOMATION.screen
End Sub

Add the following code to the btnStart click event:

Private Sub btnStart_Click()
If app Is Nothing Then
MsgBox (“No ‘application’ object”)
Exit Sub
End If

Call app.StartSession(“C:\Program Files\QWS3270\qws3270p.exe”, “Test”)
End Sub

Make sure to adjust the program location and session name above according to your setup, and add this code to the btnScreen click event:

Private Sub btnScreen_Click()
Dim bufsize As Integer
Dim buffer As String
Dim session As QWS3270AUTOMATION.session
Dim rows As Integer
Dim current As Integer

rows = 24
Set session = New QWS3270AUTOMATION.session
If session Is Nothing Then
MsgBox (“No ‘session’ object”)
Exit Sub
End If

Call session.Connect(“A”)

If screen Is Nothing Then
MsgBox (“No ‘screen’ object”)
Exit Sub
End If

bufsize = 4000
buffer = Space(bufsize)
Call screen.Get(buffer, bufsize)
MsgBox (buffer)
For current = 1 To rows
Sheet1.Cells(current, 1) = Mid$(buffer, (current – 1) * 80 + 1, 80)
Next current
End Sub

Add this to the btnQuit click event:

Private Sub btnQuit_Click()
If app Is Nothing Then
MsgBox (“No ‘application’ object”)
Exit Sub
End If

Call app.Close(“A”)
End Sub

And finally, add this to the form’s ‘Terminate’ event handler:

Private Sub UserForm_Terminate()
If Not app Is Nothing Then Set app = Nothing
If Not screen Is Nothing Then Set screen = Nothing
End Sub

Compile and run the sample. Click the ‘Start QWS’ button and wait until the program has started and the session is connected to the host. Then click the ‘Get Screen’ button. You should see the contents of the QWS screen in a message box and also in a sheet called ‘Sheet1’, 80 characters per cell. Click the ‘Close and Exit’ button and the QWS session should close and QWS should exit.

Things to remember:

  • You can only do something with a QWS session from your program if you are ‘connected’. Each session can have an identifier (one character) called the HLLAPI session ID. You connect to a session by specifying this ID. So you can connect to one session, manipulate it, disconnect from it (this does not mean the session will disconnect from the host), connect to another session and do something with it, reconnect to the first one, etc. But if you are not ‘connected’, calls to the session will fail.
  • Each session must have a unique ID so you can control which session you connect to. Trying to start two QWS3270 sessions with the same HLLAPI ID will fail even when you start the sessions from within QWS.
  • Buffers must be created and initialized within your program.
    INCORRECT:
    Dim s as string
    Call screen.Get(s)CORRECT:
    Dim s as string * 2000
    or
    Dim s as string
    s = space(2000)
    Call screen.Get(s)
  • The maximum screen size is 27 * 132 so a buffer size of 3,600 should be safe for any screen if you just want the contents. If you also want attribute bytes then double the buffer size. Normal screen size is 24*80 for an IBM-3278-2 terminal.
  • VB treats strings differently than an emulator. Getting screen text should be fine but if you get attributes, be aware that these can (and probably will) contain NULL characters so VB will think that the string ends there while in reality there is more data in the string. In these cases treat the string as an array of bytes instead.
  • In the VBA editor, check out the Object Browser (View/Object Browser, or F2). If you select the QWS3270 Automation object in it, you can see the interfaces (screen, application, field, etc.), and the functions each interface supports and what parameters they take. This can be a big help. Also check out the section in the program’s help file on COM Automation.
  • Do not use this sample as is! This code needs much more error checking but it should give you a basic idea what you can do with the Automation feature.
Does QWS3270/Secure support scripting?

We have our own scripting language built into our programs which you can use to automate tasks.

See ‘Can I automate repetitive tasks?‘ for details on scripting or consult the help file included with the program.

Prerequisites
What operating systems are supported?

We support any operating system as long as Microsoft supports it. You can check if yours is supported here: https://learn.microsoft.com/en-us/microsoft-365/security/defender-vulnerability-management/tvm-supported-os?view=o365-worldwide

Can the program run on Windows 8, Windows 7 or Vista?
Version 4.7 and higher support the Windows 8, Windows 7 and Windows Vista operating systems (32 and 64 bit).

See also: What operating systems are supported?

Ordering/Renewals

How to order QWS3270/Secure?

There are five different ways to order our software and three different ways to pay:

  • Ordering via the World Wide Web: Jolly Giant Software provides you with the flexibility of ordering software via our secure website. You can order either in one of multiple supported currencies using your VISA, MasterCard, American Express or Discover credit card.
  • Ordering via phone: Telephone orders are accepted at (613) 541-0740 or toll free at (877) 776-4657 (US & Canada only) between 08:30 – 05:00 Eastern Time.

Accepted forms of payment are:

  • Credit cards: VISA, MasterCard and America Express credit cards are accepted for telephone or fax orders.
  • Purchase orders: (including government purchase orders) are accepted. Standard payment terms are net 30 days. The purchase order can be faxed, mailed or emailed to our attention. See our contact information for details on how to reach us.
  • Order by Check: You can mail us a check along with your order (see contact information, pricing information)
Do I get a discount if I buy multiple copies?
Jolly Giant Software Inc. offers very flexible site license pricing on 50 licenses and above.  If you would like to receive a quote or if you would like us to send you a price list, please contact sales@jollygiant.com.

We also offer discounts for educational institutions.  Please contact sales@jollygiant.com for details.

I received a quote, can I pay over the phone?

From the email received, click on the link “I would like Jolly Giant Software USA LLC to send me an Invoice - Click here to generate an email request” and you will be sent an invoice with a link to pay.

How can I pay the invoice?

In the email received there is a “View & Pay Invoice” button in blue. Click that and you will be directed to a page where you can pay the invoice.

I just purchased the Plus version and then realized I needed Secure?

If within 1 week, we will send you the Secure link and an invoice for the $10 difference per license.

I purchased the software years ago and now need the new version? Or My computer was old, and I had to get a new one, do I need to purchase a new license for my new machine?

If you have been renewing maintenance yearly, not a problem. Since you have been keeping up with your yearly maintenance, we will send you a download link right now.

If you have not been keeping up with your yearly maintenance, you will need to purchase new licenses. This can be done right on Jollygiant.com.

Is there a price difference between Plus and Secure?

Yes. Plus is $115 per license and Secure is $125 per license.

I have multiple computers that I need the software on, do I need to purchase more than 1?

Yes, you need 1 license per machine that you would like to use it on.

If users share a machine, then you will need to purchase 1 license per user.

Support
Which versions of QWS3270 and QWS3270 Secure are supported?

In order to maintain a high level of support that our customers have come to expect, Jolly Giant Software has made it a policy to only support the latest two major versions of our QWS3270 and Secure products.

Upon release of a new major release, there will be a 6-month grace period for support on versions that have recently lost support.

E-Commerce powered by UltraCart