Working with QTP

TestEveryThing

Use Send Key Method QTP VB

Posted by rajivkumarnandvani on June 15, 2009

Hi All,

Some time we requre keyboard event in Automation so we can use Send key method

rem **********************************************

rem create shell object

set WshShell = CreateObject(“WScript.Shell”)

SystemUtil.Run “C:\Program Files\HP\QuickTest xcxProfessional\samples\flight\app\flight4a.exe”,”C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe”,”",”"

rem first click in the text box then use send key method

Dialog(“text:=Login”).WinEdit(“attached text:=Agent Name:”).Click

rem enter rajiv in agent name text box

WshShell.SendKeys “rajiv”

rem click Password Edit box

Dialog(“text:=Login”).WinEdit(“attached text:=Password:”).Click

rem enter check in Password text box

WshShell.SendKeys “check “

Dialog(“text:=Login”).WinButton(“text:=OK”).Click

rem press escape using send key method

WshShell.SendKeys “{ESC}”

WshShell.SendKeys “{ESC}”

rem **********************************************************

Use the SendKeys method to send keystrokes to applications that have no automation interface. Most keyboard characters are represented by a single keystroke. Some keyboard characters are made up of combinations of keystrokes (CTRL+SHIFT+HOME, for example). To send a single keyboard character, send the character itself as the string argument. For example, to send the letter x, send the string argument “x”.

Note To send a space, send the string ” “.

You can use SendKeys to send more than one keystroke at a time. To do this, create a compound string argument that represents a sequence of keystrokes by appending each keystroke in the sequence to the one before it. For example, to send the keystrokes a, b, and c, you would send the string argument “abc”. The SendKeys method uses some characters as modifiers of characters (instead of using their face-values). This set of special characters consists of parentheses, brackets, braces, and the:

  • plus sign       ”+”,
  • caret             ”^”,
  • percent sign “%”,
  • and tilde       ”~”

Send these characters by enclosing them within braces “{}”. For example, to send the plus sign, send the string argument “{+}”. Brackets “[ ]” have no special meaning when used with SendKeys, but you must enclose them within braces to accommodate applications that do give them a special meaning (for dynamic data exchange (DDE) for example).

  • To send bracket characters, send the string argument “{[}" for the left bracket and "{]}” for the right one.
  • To send brace characters, send the string argument “{{}” for the left brace and “{}}” for the right one.

Some keystrokes do not generate characters (such as ENTER and TAB). Some keystrokes represent actions (such as BACKSPACE and BREAK). To send these kinds of keystrokes, send the arguments shown in the following table:

Key Argument
BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER} or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}

To send keyboard characters that are comprised of a regular keystroke in combination with a SHIFT, CTRL, or ALT, create a compound string argument that represents the keystroke combination. You do this by preceding the regular keystroke with one or more of the following special characters:

Key Special Character
SHIFT +
CTRL ^
ALT %

Note When used this way, these special characters are not enclosed within a set of braces.

To specify that a combination of SHIFT, CTRL, and ALT should be held down while several other keys are pressed, create a compound string argument with the modified keystrokes enclosed in parentheses. For example, to send the keystroke combination that specifies that the SHIFT key is held down while:

  • e and c are pressed, send the string argument “+(ec)”.
  • e is pressed, followed by a lone c (with no SHIFT), send the string argument “+ec”.

You can use the SendKeys method to send a pattern of keystrokes that consists of a single keystroke pressed several times in a row. To do this, create a compound string argument that specifies the keystroke you want to repeat, followed by the number of times you want it repeated. You do this using a compound string argument of the form {keystroke number}. For example, to send the letter “x” ten times, you would send the string argument “{x 10}”. Be sure to include a space between keystroke and number.

Note The only keystroke pattern you can send is the kind that is comprised of a single keystroke pressed several times. For example, you can send “x” ten times, but you cannot do the same for “Ctrl+x”.

Note You cannot send the PRINT SCREEN key {PRTSC} to an application.

8 Responses to “Use Send Key Method QTP VB”

  1. Matt said

    Hi,

    Thanks for info above.

    How do you send braces to the screen using .sendkeys? as soon as i put ” within “..” it fails.

    Matt

  2. Hi Matt,

    Thanks for your input. becos u want to put/enter Double Quote for double u have to type four time double quate like this
    quate = “”"”
    WshShell.SendKeys quate

    OR u can use like this

    WshShell.SendKeys “”"”

  3. Mark said

    How about for ALT + TAB?
    Is it

    Set ALT_TAB CreateObject(“WScript.Shell”)
    ALT_TAB.Sendkeys “{{%+TAB}”

    or
    Set ALT_TAB CreateObject(“WScript.Shell”)
    ALT_TAB.Sendkeys “{{%+”TAB”}”

    It doesn’t work on me…

  4. Mark said

    Sorry.. I mean the syntax below.

    Set ALT_TAB CreateObject(”WScript.Shell”)
    ALT_TAB.Sendkeys “{%+TAB}”

    or
    Set ALT_TAB CreateObject(”WScript.Shell”)
    ALT_TAB.Sendkeys “{%+”TAB”}”

  5. Hi use this

    set ALT_TAB = CreateObject(“WScript.Shell”)
    ALT_TAB.SendKeys “%{TAB}”

  6. Mark said

    Wow this is great! Thanks for the syntax.. =)

  7. michael pedersen said

    How can I get QTP v9.5 to click the “Continue” button from the UAC popup window in Vista?

  8. Hi,
    I did not work with vista using QTP.Try to use recovery scenario..
    may be it will help
    let me know the status..

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>