3 ways to use keyboard input in QuickTest Professional: Type, SendKeys and Device Replay

There are three ways to use keyboard input in QuickTest Professional and Unified Functional Testing: Type, SendKeys and Device Replay. Why, you might ask, use the Type or Sendkeys method at all? While you wouldn’t want to automate a whole script using SendKeys only, sometimes you may, on occasion, need to automate a section of an application where there is no object recognition.
For example, some unsupported grids or tree views in Quick Test Pro can be navigated using a combination of the HOME, END and arrow keys. Also — I’ve seen applications where some fields need to have a keyboard event occur to trigger some other behavior (like tabbing of a field) using the objects standard Set method –- which would not work in this case.
1. QTP’s TYPE METHOD
Most objects support the TYPE method. Type will enter the specified string into an object or perform a certain keyboard combination against an application. For example:
To tab off an object you would use the following syntax:
SwfObject(“swfname:=Blank”).Type micTab
To enter text:
SwfObject(“swfname:=Blank”).Type “This is my string”
To send an enter keystroke:
SwfObject(“swfname:=Blank”).Type “ “
You can also send a combination of keystrokes at one time. The following holds down the CTRL and the Shift Keys, then presses the “L” key and releases the CTRL and Shift keys:
SwfObject("swfname:=Blank").Type micCtrlDwn + micShiftDwn + "L" + micShiftUp + micCtrlUp
*Important to remember: If you send a down keystroke, be sure to follow it with its corresponding up stroke, as seen in the above example. Problems can arise by sending a micCtrlDwn and forgetting to release it using micCtrlUp. So, rule of thumb — if you are pressing a key, make sure to also release it.
Also Occasionally you may have issues with event not being triggered when using one of these methods. In that case check out my post of how to use the FireEvent method.
2. VBScript SendKeys Method ( Also check out: QTP’s VBscript SendKeys FAQ)
There are instances in which QTP’s Type method does not trigger certain events, or is unable to mimic certain keystrokes. In these cases, VBScript SendKeys method can be used. To use the SendKeys you need to first set the WshShell object:
Dim mySendKeys
set mySendKeys = CreateObject("WScript.shell")
mySendKeys.SendKeys(“{TAB}”)
To send the text you would use:
mySendKeys.SendKeys(“This is my string”)
To send an enter keystroke:
mySendKeys.SendKeys(“~”)
*A few important tips: Unlike the QTP TYPE method, you will need to use curly braces for arguments like a TAB or Up arrow key strokes. Also — SendKeys has the following special characters: Alt(%), Ctrl(^), Shift(+) and Enter(~) keys.
So, to send a CTRL and press the A key you would send:
mySendKeys.SendKeys("^A")
If you need to perform the same keystroke multiple times, you can create a compound string argument. This will allow you to perform a specific keystroke and repeat it any number of times. To select, say, the 10th row in a grid control you might use:
mySendKeys.SendKeys(“{DOWN 10}”)
This will send the down key ten times. (For a more detailed explanation of SendKeys check out VBScript Programmer’s Reference.)
Important – You’ll need to make sure that the application or object you wish to receive the keystroke has focus before sending the keystroke.
*Common issues with this method:
(Sometimes multiple keystrokes will not work. If this is the case, try executing each one in a separate line.)
3. Device Replay
This is an undocumented and unsupported QuickTest method, but can be used as a last resort. To employ this method, you’ll need to create a Device Replay object.(Check out the Device Replay Chart of Codes)
To tab off an object:
Dim myDeviceReplay
Set myDeviceReplay = CreateObject("Mercury.DeviceReplay")
myDeviceReplay.PressKey 15
*Remember that Device Replay uses ASCII characters
To send text you would use:
myDeviceReplay.SendString “This is my string”
To send an enter keystroke:
myDeviceReplay.PressKey 28 ‘ASCII code for enter
From The HP knowledge base:
The functions that can be used with the Device Replay object are (all coordinates are relative to the top left corner of the screen):
|
Since I posted this I recently came across some more Device Replay Key codes for the PressKey, Keydown, Keyup and PressNKeys that I’d like to share with you. These methods are particularly helpful in certain situations in which you need to perform an action using a code that does not have an ASCII equivalent. Check out my QTP Secret Code Chart Revealed for more info: https://testguild.com/2011/07/19/qtp-secret-code-chart-revealed-for-devicereplay-presskey-keydown-keyup-and-pressnkeys/
Hope this helps.
Joe Colantonio is the founder of TestGuild, an industry-leading platform for automation testing and software testing tools. With over 25 years of hands-on experience, he has worked with top enterprise companies, helped develop early test automation tools and frameworks, and runs the largest online automation testing conference, Automation Guild.
Joe is also the author of Automation Awesomeness: 260 Actionable Affirmations To Improve Your QA & Automation Testing Skills and the host of the TestGuild podcast, which he has released weekly since 2014, making it the longest-running podcast dedicated to automation testing. Over the years, he has interviewed top thought leaders in DevOps, AI-driven test automation, and software quality, shaping the conversation in the industry.
With a reach of over 400,000 across his YouTube channel, LinkedIn, email list, and other social channels, Joe’s insights impact thousands of testers and engineers worldwide.
He has worked with some of the top companies in software testing and automation, including Tricentis, Keysight, Applitools, and BrowserStack, as sponsors and partners, helping them connect with the right audience in the automation testing space.
Follow him on LinkedIn or check out more at TestGuild.com.
Related Posts
Look, I’ve been doing test automation for over 25 years. I’ve heard the predictions. “Manual testing is dead.” “AI will […]
The 72.8% Paradox That Changes Everything After interviewing 50+ testing experts in 2025 and analyzing data from our 40,000+ member […]
Look, I’ve been doing this testing thing for over 25 years now. I first wrote about the AI “three waves” […]
What’s New in Low-Code/No-Code Testing for 2026 A lot had changed on the The low-code/no-code testing space and it has […]



