0% found this document useful (0 votes)
226 views

SendKeys Method (Vbscript)

To send the key combination CTRL + ALT + SHIFT + F7 using SendKeys, you would use: SendKeys "%^+{F7}" The special characters represent: % - ALT ^ - CTRL + - SHIFT So %^+{F7} translates to holding down CTRL, ALT and SHIFT, then pressing the F7 key. The keys must be enclosed in braces {} when they have special meanings, like F7 in this case.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
226 views

SendKeys Method (Vbscript)

To send the key combination CTRL + ALT + SHIFT + F7 using SendKeys, you would use: SendKeys "%^+{F7}" The special characters represent: % - ALT ^ - CTRL + - SHIFT So %^+{F7} translates to holding down CTRL, ALT and SHIFT, then pressing the F7 key. The keys must be enclosed in braces {} when they have special meanings, like F7 in this case.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

SendKeys Method

Sends one or more keystrokes to the active window ﴾as if typed on the keyboard﴿.

                      object.SendKeys(string) 

Arguments
object
WshShell object.

string
String value indicating the keystroke﴾s﴿ you want to send.

Remarks
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.

Example
Description
The following example demonstrates the use of a single .wsf file for two jobs in different script languages ﴾VBScript and
JScript﴿. Each job runs the Windows calculator and sends it keystrokes to execute a simple calculation.

<package> 
   <job id="vbs"> 
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell") 
         WshShell.Run "calc" 
         WScript.Sleep 100 
         WshShell.AppActivate "Calculator" 
         WScript.Sleep 100 
         WshShell.SendKeys "1{+}" 
         WScript.Sleep 500 
         WshShell.SendKeys "2" 
         WScript.Sleep 500 
         WshShell.SendKeys "~" 
         WScript.Sleep 500 
         WshShell.SendKeys "*3" 
         WScript.Sleep 500 
         WshShell.SendKeys "~" 
         WScript.Sleep 2500 
      </script> 
   </job> 

   <job id="js"> 
      <script language="JScript"> 
         var WshShell = WScript.CreateObject("WScript.Shell"); 
         WshShell.Run("calc"); 
         WScript.Sleep(100); 
         WshShell.AppActivate("Calculator"); 
         WScript.Sleep(100); 
         WshShell.SendKeys ("1{+}"); 
         WScript.Sleep(500); 
         WshShell.SendKeys("2"); 
         WScript.Sleep(500); 
         WshShell.SendKeys("~"); 
         WScript.Sleep(500); 
         WshShell.SendKeys("*3"); 
         WScript.Sleep(500); 
         WshShell.SendKeys("~"); 
         WScript.Sleep(2500); 
      </script> 
   </job> 
</package> 

Applies To:
WshShell Object

See Also
Reference
Run Method ﴾Windows Script Host﴿

Community Additions

eMail‐Adress with sendkey


Up to Outlook 2007 I was able to send the eMail‐Adress via Sendkey into the eMail‐Adress‐Field of a new eMail‐Message.

With Outlook 2010 the sendkey deletes the @‐character:

send: [email protected]

received:  infobussoft.de

Any idea why and how I can solve that

regards

Reiner

BusSoft
9/22/2011

how to run ALT + BLANK + N ﴾minimize the web page﴿


I try

WshShell.SendKeys("%+(' 'n)");    // only run    [ALT + BLANK]

WshShell.SendKeys("%{ }n");    // only run [ALT + BLANK]


how to write this?

Water.Yue
9/21/2011

WINDOWS key stroke


Q: What is the key string to represent the Windows key in the sendkeys method of scripting?

Naresh.S
8/31/2011

using SendKeys
hi i want to send the  tilde﴾~﴿,caret﴾^﴿,percent﴾%﴿ keys but these keys alotted to shift,alt keys...so anyone pls help me..urgent

Just enclose them with braces {~} {^} {%}.

Emc7
6/17/2011

Using Hyperlink Terminal


Hello everybody,

    I have some equipment that I have to configure and it uses the Hyperlink Terminal. It is all done with keystrokes. I am currently trying
to use SendKeys, it works great until I get to the point where I have to press enter. The problem isn't that it doesn't hit enter, the
problem is the key after I hit enter. It hits that key too fast. Is there a pause I can input? Or perhaps.. I figured it out. So, I shall post this
as a help in case others can't. I ended the chain and started a new one. With ~ ending one and 9 starting the other. It worked ^_^

Navy Intern
5/5/2011

Question
Hi,
I'm trying to creat a wallpaper changer application with Autoplay Media Studio using vbscript, and to set a desktop wallpaper I should
have coverted it first to *.bmp format. My question is how to ﴾using sendkeys method﴿ make mspaint.exe opens the desired graphic
then save it as *.bmp on "C:/" dir?
Please help me, i've tried to creat the vbs file myself but i didn't success because i'm inexperienced in these stuff.
I'll be grateful for your answer,
Thanks in Advance.

El. Hicham
4/21/2011

send space bar


"^{ }"  can be used as equivalent to sending a space bar

sumit bharati
3/10/2011

mouse click
how can i send a left mouse click??

sumit bharati
3/4/2011

FN key in SendKeys?
How i can send the FN key with SendKeys?

I use Visual Basic

IviBlack
2/11/2011

what is Space code


what is space code like sendkeys "{BS}",true ﴾for visual basic 6.0﴿

for example: sendkeys " ",true

this not useless for my project

samanasu
1/8/2011

Windows key?
Is there code for Windows key?

How to send Windows+R for example?

vadav
7/30/2010

sendkeys variable
can i use sendkeys to send a variable? is it like "sendkeys "{variable}"" ?

bartian1
7/17/2010

CTRL+ALT+SHIFT+F7
Q: I want to simulate the events CTRL + ALT + SHIFT + F7. I am trying the expression for sendkeys as ^+%{F7}. However it is not
working. Could you please tell me how to specify the key combination??

A: Have you tried ^﴾+﴾%{F7﴿﴿

Sekhat
5/25/2010

Simulate a Right‐Click
You can use SendKeys to simulate a mouse right‐click by sending a shift F10:

WshShell.SendKeys("+{F10}");
CBMTaz
5/3/2010

WshShell.sendkeys doesn't work with traditional chinese characters!!!


I have been sending traditional chinese characters using sendkeys in visual basic. Due to some problems﴾ such as Vista ﴿, I need to
replace it with WshShell.sendkeys. However, I then find that WshShell.sendkeys doesn't work with traditional chinese characters !!! Any
solution? Thanks

[tfl ‐ 26 10 09] Hi ‐ and thanks for your post. You should post questions like this to the MSDN Forums at 
http://forums.microsoft.com/msdn or the MSDN Newsgroups at 
http://www.microsoft.com/communities/newsgroups/en‐us/. You are much more likely get a quicker response 
using the forums than through the Community Content. For specific help about: 
.NET Framework : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.dotnet.framework 
PowerShell     : http://groups.google.com/group/microsoft.public.windows.powershell/topics?pli=1 
SQL Server     : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.sqlserver%2C& 
Visual Studio  : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.vstudio%2C& 
Windows        : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.windows%2C& 
All Public     : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public%2C& 

Thomas Lee
10/26/2009

Ctrl + *
Hi,
How do i send ﴾Ctrl + *﴿? is "^*" correct or "^﴾*﴿" correct?

[tfl ‐ 26 10 09] Hi ‐ and thanks for your post. You should post questions like this to the MSDN Forums at 
http://forums.microsoft.com/msdn or the MSDN Newsgroups at 
http://www.microsoft.com/communities/newsgroups/en‐us/. You are much more likely get a quicker response 
using the forums than through the Community Content. For specific help about: 
.NET Framework : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.dotnet.framework 
PowerShell     : http://groups.google.com/group/microsoft.public.windows.powershell/topics?pli=1 
SQL Server     : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.sqlserver%2C& 
Visual Studio  : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.vstudio%2C& 
Windows        : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.windows%2C& 
All Public     : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public%2C& 

Thomas Lee
10/26/2009
number pad
was just fiddling around and with .vbs files and making the computer type stuff and i was trying to type some ASCII code symbols but i
couldnt get it to work i typed
Set WshShell = WScript.CreateObject﴾"WScript.Shell"﴿
WshShell.Run "notepad"
WScript.Sleep 500
WshShell.AppActivate "Notepad"
Wshshell.SendKeys "%﴾168﴿"
saved as a .vbs file didnt work, i think it is because ASCII seems to only work on the number pad bit of the keyboard, not the row of
numbers.
is there a different way to do the number pad
ps. pad as in:
789
456
123

ragon345
9/8/2009

Sending Right Alt key


Is it possible to send right alt key ﴾keys.RMENU﴿?

[tfl ‐ 23 04 09] You should post questions like this to the MSDN Forums at http://forums.microsoft.com/msdn 
or  
the MSDN Newsgroups at http://www.microsoft.com/communities/newsgroups/en‐us/. You are much more likely get 

quicker response using the forums than through the Community Content. For specific help about: 
Visual Studio  : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.vstudio%2C& 
.NET Framework : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.dotnet.framework 
All Public     : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public%2C& 

Stanley Roark
8/3/2009

© 2017 Microsoft

You might also like