Tuesday, December 27, 2011

Video – Using QwikTouchPro with an Electronic Scale

Introduced in v0.1.40 (Available upon request only)

Part 1 (5:58)
Creating a Datasource for the Scale
Displaying the weight from the scale in real-time

Wednesday, December 21, 2011

New Feature – Set Active Program Macro

Introduced in QwikTouchPro v0.1.39

Target: Programs
Action: Set Active Program (and Clear Active Program)

The Set Active Program Macro tells QwikTouchPro what program we want to send Keys and Codes to.

By default, the Active Program is whatever program (Windows application) has the focus, usually the last program the user was working with.

If we create a Key to send a stock number to Keystroke we want to make sure Keystroke is the Active Program.  This may not be true if the user switches to another program before touching the Key (maybe they were surfing the Internet or checking their e-mail).

To make QwikTouchPro activate Keystroke before sending keys to it we can add a Macro to set the Active Program to Keystroke.

This screen shot shows a typical “Set Active Program” for Keystroke.

This Macro will be run when the Template loads – we add the Macro here so it will be run anytime this template is opened. 

The Parameters are:
Program – Browse to your Keystroke Program file (or whatever program you want to set as Active).

Activation Options
Open Program – this tells QwikTouchPro to open the program when activating it.
Activate  Program – this tells QwikTouchPro to Activate the program.
* Do not use this option with Keystroke.  The only way for QwikTouchPro to activate Keystroke is to Move it.

Move Program
This tells QwikTouchPro to move the program when activating it.
* Requires a Program Window

When this template loads, QwikTouchPro will set Keystrok as the Active Program.

Before QwikTouchPro tries to send any keys or codes to the Active Program, it will first Open (if needed) and Move (if needed) Keystroke, giving it the focus.

This ensures that Keystroke is Open, has the Focus, and also ensures that Keystroke is the right size and in the right location (as specified by the Program Window).

The “Clear Active Program” clears the Active Program so that any keys or codes are sent to whatever program has the focus.

Friday, November 18, 2011

Video – Custom Keystroke Sales Screen

This 5:30 Video goes over some of the new features in QwikTouchPro and how we can use them to integrate with Keystroke to create custom sales screens -

Saturday, November 12, 2011

Video (Part 2) – Using the Dataview to Show Filtered Popup Windows

This 14:09 video walks through using the dataview from part 1 to display a popup list of inventory items that will be filtered by department.


Part 1 of this video can be found here -

Note – a note about renaming controls.  QwikTouchPro refers to controls by name.  Once you start referring to controls in the Source Control Builder you have to be careful when renaming them.

For e.g.  When we touch our ‘InventoryList’ dataview in the video, we send the stock number of the selected item from a dataview called ‘Iventory List’. 

If we rename the dataview to something else QwikTouchPro can’t find it and the macro will fail (quietly).

Be aware that copying controls (even between templates) renames them.  If you copy InventoryList it will be pasted as DataView17 and must be renamed for the macros to work.

Video (Part 1) – Using a Dataview with a Keystroke Inventory Export to Auto Generate Keys

This 11:17 Video walks through using a Dataview to display a list of Keystroke inventory items.

The dataview is a scrolling list that can display data from various datasources.  In this video we use a Keystroke inventory export as the data source, and setup a dataview with a macro that adds the selected item to the current invoice when touched/clicked.

The steps covered in the video are:
·         Export the Keystrok inventory
o   This creates the qtpexport.txt file we will use as a datasource
·         Create a QwikTouchPro datasource for the qtpexport.txt file
o   This file tells QwikTouchPro where to find the export file and how to read it
·         Create an item template
o   A small template that tells the dataview how to display the items
·         Add a dataview using the datasource and item template

You can update/add/remove keys to the dataview by updating your Keystroke inventory and then re-running the export.  You can refresh your inventory (re-run ksexport.exe) from QwikTouchPro using macros and/or timers to keep your inventory keys as update to date as you need them to be.

Wednesday, November 9, 2011

String Formatting

There are several places in the QwikTouchPro Editor where you can provide an optional string format.

We use string formatting when we are retuning a value from a Datasource or another control and we want to change the way it is displayed.

String formatting is how we convert 7.2 to $7.20, or “11/8/2011” to “November 8, 2011” for e.g.

As of this writing, you can apply a String Format in the following places –
  • Data Binding (Data Tab, Data Binding Group)
  • Source Control Builder (Anywhere you see this icon -)
  • DataGrid Columns (Data Controls Tab, Datagrid Group, Configure)

One of the more common uses for string formatting will probably be to format prices from Keystrokes as dollar amounts.  When you create a Customer Display or a collection of inventory items they are displayed the way they come out of the Keystroke Data port or Export.txt files.
This often means 0, 1, 1.5, or 17.32, when what we really want to see is $0.00, $1.00, $1.50, or $17.32.

To accomplish this we can apply a String Format to the price to convert it from a number to a dollar amount (currency).

The string format for currency is –

Here is an example of a currency string format being applied to the Amount Due field from the Keystroke Dataport –

Here is a great link to some string formats –
(Scroll down to where the string format examples begin)

And here is a link of some common examples –

You can also use string formatting to specify the image for a Keystroke Inventory Item.
We know that the Images in Keystrokes are named I[StockNumber].jpg.

If we know the Stock Number of an item we can build the path to its image with string formatting.

{0} is a token that represents the string we are formatting (the Stock number of the selected item for example).

To get the full path of the image we would format the string as –
At runtime, QwikTouchPro will replace the {0} with the stock number of the selected item.

The QwikTouchPro System Tray Icon

When QwikTouchPro (not the QwikTouchPro Editor) is running you will see an icon for it in the system tray (lower right hand corner of your desktop by the time).

Note - Windows 7 hides System Tray icons by default, if you do not see the QwikTouchPro Icon click the little up arrow in the system tray to see all hidden icons (you can also set the QwikTouchPro Icon to always show here as well).

The System Tray icon performs several functions –
·         It lets you know QwikTouchPro is running
·         You can quickly minimize or restore QwikTouchPro by double clicking on the icon
o   This is a quick way to temporarily minimize QwikTouch so you can work with your desktop or other applications that may be behind your current template.
·         You can right click the Icon to change your QwikTouchPro configuration

If you right click on the QwikTouchPro icon in the system tray you will see the following menu options –

Always On Top – If checked, QwikTouchPro will display on top of all other open applications.
This is the default behavior for QwikTouchPro but you may want to temporarily toggle this so you can interact with other windows and applications.

Show in TaskBar – This option will display all  open templates on the taskbar.  The default is disabled.

Open Template –This option allows you to browse to a template to open.  The template will be displayed using its default options as specified in the QwikTouchPro Editor.

Note – The recommend method of opening QwikTouchPro Templates is to associate the template files (*.qtt) with the QwikTouchPro.exe executable.  You can then open any template by double clicking it.

Start Server- This option starts the QwikTouchPro Server allowing you to control this display from other computers on your LAN or the Internet.

Note – This option can be enabled by default in the QwikTouchPro Properties dialog.

Stop Server – This option stops the QwikTouchPro Server.

Properties – Opens the QwikTouchPro Properties dialog (see this Post)

About – Displays information about your QwikTouchPro installation.

Exit – Closes all open templates and exits QwikTouchPro.

QwikTouchPro Properties Dialog

When you select the Properties option from the QwikTouchPro system tray you will see the QwikTouchPro properties dialog –

Media Folder – The default location for your media files (Images and Videos).
When you add an item from your Media folder to your Canvas (in the QwikTouchPro Editor) QwikTouchPro changes the Path to \Media\[ImageName.png].

This allows you to have different Media Folders for different installations. 

Instead of all installations using c:\program files\QwikTouchPro\Media as a default location, each installation can have its Media Folder.  As long as the image you are referencing exists in the users default media folder QwikTouchPro can find it.

Note -  If you add images that are not in your default media folder you will be prompted to copy them into your default media folder.  If you say no, the image will be referenced from its actual location, meaning any templates that use that image must have access to it.

e.g.  You could add an image from a \\ServerName\Images folder as long as all of your client installs have access to that folder.

Template Folder – Default location for your QwikTouchPro Templates and Custom Controls.
This works the same way as the default Media Folder.

Programs Folder – Default location for your QwikTouchPro Program and Datasource files.
This works the same way as the default Media Folder.

Warning – QwikTouchPro and the QwikTouchPro Editor can use different default locations, but in most cases you will want them to be the same.

For e.g., if you change your default Media Location in the QwikTouchPro Editor but NOT in QwikTouchPro, your images will not display because QwikTouchPro is looking for them in the wrong place.

If your templates folder is not the same you will see errors about missing templates because you are telling the editor to look for templates in a different place than QwikTouchPro.

Advanced Tip – The default folders can be configured independently, this can be especially useful in installs with more than 1 Register.

e.g.  You could have the Media and Template folders point to a network location for all Workstations, but have the Programs Folder be local.

Each installation would share the same images and templates (they only need to be updated on the server).

Each installation would also use its own local Programs (keystroke.qtp for example).

Each workstation can run an “Open KeystrokePOS” macro on load, and depending on the workstation a different Keystroke Configuration will be used (Reg 1, Reg 2, Reg 3).

Click Sound – This is the sound file that is played when a user touches a key in QwikTouchPro.
You can browse to a new sound file or make this blank to disable the click sound.

Click Animation – When enabled, keys will shrink slightly when they are touched/clicked as feedback to the user. 

Server Port – The port the QwikTouchPro server should run on

Auto Start Server – Start the QwikTouchPro server automatically when QwikTouchPro opens.

Idle Time - How long (in seconds) should the computer be idle before QwikTouchPro fires an “Idle Time” Macro. 

Idle time macros can be set for each template from the QwikTouchPro Editor, Templates Tab, Macros Group, Edit Button.

Idle time macros can be used like a screen saver to show advertising or images when the computer is idle, or to “reset” a KIOSK when people walk away from it (in case the user leaves the KIOSK on a different template than the startup template for e.g.).

Logging Mode – This controls how QwikTouchPro displays warnings, errors and messages.

Options are:
                None – No messages will be logged or displayed
                Log File – Write all messages to a log file
                Message Popup – Display a pop-up window for each message.

You may want to set the Logging Mode to Log File so the customer does not see every message, but you can still check the log file for trouble shooting.

Video - Creating a Keystroke Customer Display

This 15 minute video walks through creating a simple Keystrok customer display in QwikTouchPro.

A customer display is a template that displays real-time sales information as it is entered into Keystrokes.  Customer Displays can also display advertising and might be run on a second monitor or other remote display where the customer can see them.

The steps to create a Customer Display are detailed in the Video, but they are –
o   Enable the Dataport in KeystrokePOS
o   Create a Datasource in the QwikTouchPro Editor
§  A configuration file that points to the Keystroke Dataport          
o   Add (and Bind) Text controls for the invoice data
o   Add (and configure) a Datagrid to display the line items

The Customer Display created in this video very basic.  Your actual customer display can contain media (Images, Videos, Flash Videos, Web Pages) as well as dynamic advertising and advanced macros.

Your customer display could, for example, display different information depending on the current sales invoice -
·         Show different customer displays to different customers
o   Walk-ins can see a different Customer Display than your regular customers
o   Customers could be flagged in your Keystroke Database to allow for more customized displays
§  E.g.  Mark a Customer a “GoldClub” member and show them a fancy golden template with specific advertising
·         Display a message (or Template, or Sub-Template) depending on the Invoice Total
·         Display custom advertising/info about the department of the last item added to the sale
·         Display an image of the last inventory item added to the sale
·         Much More...

Datagrid Options

I didn’t talk about these in the video so here is a quick overview –

Scroll to Last Row on Update – This option scrolls the Datagrid to the bottom when an item is added.  With a customer display you will probably want to show the bottom of the list of Line Items and not the top, so that the customer will always see the last item added.

Select Last Row on Update – This option selects the last row (but does not scroll to it) of the Datagrid when an item is added.   You can use this to highlight the most recent item, and also to create macros.

Play Click Sound on Selection – This option will play the default click sound when an item on the Datagrid is selected (by touching it, or via the “Select Last Row on Update” option).

You might disable this option when using the “Select Last Row on Update” option so don’t hear the click sound as items are added to the sale.

The default click sound can be changed by right clicking the QwikTouchPro icon in the system right and choosing properties (requires that QwikTouchPro be running).

Here are a few sample Customer Displays from an earlier Blog Post.

Saturday, November 5, 2011

Video - Modifying the Standard16x11 Template

This 9 minute video demonstrates adding some keys to the Standard Template. 
The new keys will ring up a few promotional items in Keystrokes.


The latest Standard16x11 templates can be downloaded here

Thursday, November 3, 2011

Using KeystrokePOS with QwikTouchPro

This post will describe how to configure QwikTouchPro to work with KeystrokePOS.

The first step is to create a Program File that describes KeystrokePOS to QwikTouchPro.

See this post for information on creating programs http://qwiktouchpro.blogspot.com/2011/11/introduction-to-programs.html

Here is a sample Keystroke Configuration

Executable: Browse to Keystrok.exe
Switches: Optional, you can use an INI file instead

KSTemp File: This is only required if you want QwikTouchPro to be able to move and size your Keystroke window.

This file will be called DPx.tmp (where x is your register number) and it will be created in the current Keystroke Data Folder (c:\keystroke\Tutor in this example).

Use Existing Process From Task Manager:  We use this option to tell QwikTouchPro to try and find a running copy of Keystroke instead of opening a new one.

Process Name:  Keystrok
The Process Name is how QwikTouchPro finds the running copy of Keystroke, it looks at all running programs for one named “Keystrok”.

Show Window:  Run Keystroke in a window that the user can see and interact with.

Start/Restart on Activation:  This has no effect on Keystroke

Start Maximized:  We could start Keystroke full screen, but we will be using a “Move Program” Macro to precisely move and size it instead.

Wait for Exit:   This has not effect on Keystroke.

Once you have created and saved your Keystrok.qtp configuration file, you can use it in macros.

Making Changes
If you change the way Keystroke is configured you will need to edit and update the Keystrok.qtp file (though the Edit Program Button on the Data Tab).

e.g., if we wanted to change our sample configuration from the Tutor Folder to the Data Folder we would make the following changes:

The Switches need to be updated from /D TUTOR to /D DATA
The KSTemp file needs to be updated to c:\Keystroke\Data\DP1.TMP

Example Macros

Open Keystroke when the Template Loads
This macro will open a copy of Keystroke when this template loads.  Remember we can call “Open Program” as often as we would like without worrying about opening multiple copies of Keystroke.

Close Keystroke when the users touches a Button
This macro will close Keystroke when the user touches a Button


Move Keystroke when the users touches a Button
This macro will move and size Keystroke when the user touches the button.  This macro requires a Program Window control be added to your template.  The Program Window control is how QwikTouchPro knows where and how to display Keystroke.

Trouble Shooting
Some common problems and possible solutions.

Problem:  A new copy of Keystroke opens every time the “Open Program – Keystroke” Macro is performed.
Solution:  Confirm the Process Name in the Program Setup is correct (should be Keystrok) and that “Use existing process from Task Manager” is checked.

Problem:  Error finding Keystroke Temp File
Solution:  Confirm that you have selected the correct DPx.TMP file.  You may have to examine your Keystroke [Data] folder (Data, Tutor etc…) to make sure there is a DPx.TMP file being created and that you are selecting the correct file.

Problem:  The “Move Program – Keystroke” Macro doesn’t do anything.
Solution:  Confirm that you have selected the correct DPx.TMP file.  You may have to examine your Keystroke [Data] folder to make sure there is a DPx.TMP file being created and that you are selecting the correct file.

Problem:  Keystrokes is open, but “Send Text” Macros are not working.
Solution:  QwikTouchPro sends commands to the Active Program.  Even though Keystroke may be visible, it may not be active (does not have the focus).

To correct this, you may have to add an additional Macro to “Move Program – Keystroke”.  The “Move Program” Macro will give Keystroke POS the focus as well as moving and sizing it.

Introduction to Programs

QwikTouchPro Program Files (*.qtp) are configuration files that tell QwikTouchPro how to work with other applications like Keystroke, Notepad or Microsoft Word.

Program Files are stored in your QwikTouchPro Programs folder (default is c:\program files\QwikTouchPro\Programs) and can be reused and shared.

These Program Files can be referenced by any and all of your templates, and can be quickly updated.  If your Keystroke directory changes for example, you can simply edit the Keystroke.qtp file and any templates using that file will use the new configuration.

You create and manage program files from the QwikTouchPro Editor by selecting the Data Tab, Programs Group, and New or Edit Program.

The New Program Dialog

Executable:  Browse to the Application you want to work with
                Example: c:\Keystroke\Keystrok.exe    
Path:  Auto Filled when you select the Executable
Switches (optional):  Any command line switches your application requires.
KS Temp File (optional):  This is a small text file that Keystroke POS generates and is required for QwikTouchPro to be able to move and size it.  This field is only required for Keystroke and can be ignored for all other applications.

Use Existing Process from Task Manager:  This option tells QwikTouchPro to look for a running instance of a program instead of opening a new one. 

When QwikTouchPro tries to open your application, it will first look through your currently running applications.  If it finds a copy of your application is already running, QwikTouchPro will use that instance instead of opening a new one. 

This is to allow you to call “Open Program” Macros without having to worry about opening the application more than 1 time.

For e.g., you could call “Open Keystroke” as often as you like, and if Keystroke is already running, nothing will happen.  This is an easy way to make sure programs are open when you need them – when in doubt you can call the Open Program Macro with no adverse effects.

Process Name:  This is the name of the application as it appears in the Task Manager without the extension - e.g. Notepad, Keystok.

The Process Name field is required by the “Use Existing Process” option.

Show Window:  Opens the Application in a visible window so the user can see it. 

There may be applications you want to run in the background that the user should not see (like kicking off an export, or restarting a service).

Start/Restart on Activation:  This option will automatically try to start or restart and application if you call the “Activate Program” Macro.

This option is to make it easy to ensure that your application is open and active when you go to use it.

One Macro - “Activate Program” will open the Application and bring it to the forefront, saving you the extra step of adding a second “Open Program” Macro.

(this setting has no effect on KeystrokePOS)

Start Maximized:  Start the Application Maximized. If you do not select this option, QwikTouchPro will open the Application at whatever its default or last size was.

Wait for Exit:  This option will cause QwikTouchPro to wait for the Application to exit before continuing on.

You might use this when running KSExport.exe to make sure the export finishes before allowing the user to continue on.

When you click Create you will be prompted to save your Program File.  I recommend naming the file so that you can easily tell the application it will be used for.

e.g.  Keystroke.qtp, Notepad.qtp, KSExport.qtp

Tuesday, November 1, 2011

Default View

This post will discuss the Default View Options of the Template Properties dialog.

For an explanation of the width/height and how to size your Templates see this post -

You can access the Template Properties Dialog in 2 ways
                It is opened automatically when you Open QwikTouchPro or start a new Template
                You can choose “Template Properties” from the Application Menu

This dialog sets the default values for a template, but these values can be overridden by Show Template Macros.

Each Default View has the following Common Options

Primary – Mark this Template as the Primary Template. 

Modal – If a template is marked as Modal, users cannot access controls on other templates while this template is open.  You could use this option to limit a user’s interaction with other open templates.

Top Most – this Template will display on top of any other open templates.  This can be useful for things like Keyboard Pop-ups where you always want the Keyboard to show on top of any other templates.
If more than 1 active template is marked “Top Most” they display in the order they were opened (newest on top).

Monitor – Which monitor to display this template on.  This can be any monitor supported by your hardware.

Display Modes
Templates can be displayed in 3 ways – Full Screen, Window or Actual Size.

Full Screen

Full Screen means the template will be Stretched, Scaled or Shrunk to fill the screen completely, regardless of the size of your template.

The Template Sizing Post goes into more detail about how templates are sized.


Window gives you more control over how the template will be displayed.
You size the Width and/or Height of the template in % of screen size.

In the screen shot above, this template will display at 85% the height of the screen.

The width is locked (by the checkmark next to the padlock icon).  This tells QwikTouchPro to make the template 85% the height of the screen and make the width whatever it needs to be to maintain the template Aspect Ratio.

You can specify both the Width and Height (in %’s) of the template, but be aware that this will affect the aspect ratio of your template.

The Alignment Options allow you to choose where the template will be displayed (top left, right, top, bottom etc…).

Actual Size

Each cell in QwikTouchPro is 100px by 100px (see Template Size post referenced above for more detail).

Actual Size displays the template at (100px * Columns) and (100px * Rows)

e.g. an 8x6 Template  would display at 800x600.

(Actual Size is the only mode that remains consistent between resolution changes)

Some types of templates that would be displayed Full Screen -
 Keystroke Overlays, KIOSK Screens, Digital Signs, Digital Menus, Customer Displays

Some types of templates that would be displayed in a Window
Keyboards, Keypads, pop-up windows, dialogs

Some types of templates that would be displayed at Actual Size
                Any template where you want to precisely control the size, regardless of the target machine’s resolution.