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).
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.
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.
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
oThis creates the qtpexport.txt file we will use as a datasource
·Create a QwikTouchPro datasource for the qtpexport.txt file
oThis file tells QwikTouchPro where to find the export file and how to read it
·Create an item template
oA 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.
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 –
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
oThis 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 beenabled 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.
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.
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.
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 –
oEnable the Dataport in KeystrokePOS
oCreate a Datasource in the QwikTouchPro Editor
§A configuration file that points to the Keystroke Dataport
oAdd (and Bind) Text controls for the invoice data
oAdd (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
oWalk-ins can see a different Customer Display than your regular customers
oCustomers 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
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.
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.
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.
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
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.
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.
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
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: Thisis 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.
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…).
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.