Discussion:
sendkeys not working in windows xp professional sp3
(too old to reply)
emrefan
2011-01-27 09:19:56 UTC
Permalink
I have a keyboard macro written in Windows Script and it was working
when I had Windows XP Professional SP2 (I have the traditional Chinese
version of XP, if that matters). After installing SP3, it stopped
working. It seems SP3 is preventing some type of keys to be sent to
applications. The following test script (NOT my original script, which
is a bit more complex) demonstrates the problem. If anyone has
Windows XP Pro + SP3, please try it out and better yet, provide a
solution / workaround.

-------------------------------------------- snip
-----------------------------------------------------------------------------------
set oShell = WScript.createObject( "WScript.Shell" )

oShell.run "notepad"
WScript.sleep 800

' Please adapt the window name in following function for your
' particular version of Windows XP:

wndFound = oShell.appActivate( "noname - notepad" )

if not wndFound then
WScript.Echo "Window not found, cannot send keys to it"
WScript.quit
end if

' Sending ctrl-o to start the Open document dialogue box does NOT
' work on XP w/ SP3:
oShell.sendKeys "^O"

WScript.sleep 100
oShell.sendKeys "sending plain text works"

--------------------------------------------- snip
---------------------------------------------------------------------
Tom Lavedas
2011-01-27 18:59:46 UTC
Permalink
Post by emrefan
I have a keyboard macro written in Windows Script and it was working
when I had Windows XP Professional SP2 (I have the traditional Chinese
version of XP, if that matters). After installing SP3, it stopped
working.  It seems SP3 is preventing some type of keys to be sent to
applications. The following test script (NOT my original script, which
is a bit more complex) demonstrates the problem.  If anyone has
Windows XP Pro + SP3, please try it out and better yet, provide a
solution / workaround.
-------------------------------------------- snip
-----------------------------------------------------------------------------------
set oShell = WScript.createObject( "WScript.Shell" )
oShell.run "notepad"
WScript.sleep 800
' Please adapt the window name in following function for your
wndFound = oShell.appActivate( "noname - notepad" )
if not wndFound then
   WScript.Echo "Window not found, cannot send keys to it"
   WScript.quit
end if
' Sending ctrl-o to start the Open document dialogue box does NOT
oShell.sendKeys "^O"
WScript.sleep 100
oShell.sendKeys "sending plain text works"
--------------------------------------------- snip
---------------------------------------------------------------------
Try lower case letters for menu items. I don't know why things
changed, but they appear to have. The following script (which closes
the loop around locating the newly opened Notepad window) worked for
me in XPSP3.

set oShell = createObject( "WScript.Shell" )

oShell.run "notepad", 1 False

' Please adapt the window name in following function for your
' particular version of Windows XP:

For n = 1 to 10
WScript.sleep 50
wndFound = oShell.appActivate( "notepad" )
if wndFound then exit for
next

if not wndFound then
WScript.Echo "Window not found, cannot send keys to it"
WScript.quit
end if

' Sending ctrl-o to start the Open document dialogue box does NOT
' work on XP w/ SP3:
oShell.sendKeys "^o" ' lower case only

WScript.sleep 100
oShell.sendKeys "sending plain text works"

_____________________________
Tom Lavedas

Loading...