'vbs key press script
I am trying to write a script in vbs that will press Ctrl+Shift+R
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "Summit.Scripting.Toolkit.exe"
wscript.sleep 2000
WshShell.SendKeys "+^r"
So far I was able to get the script to activate/select the application but unfortunately the key presses do not seem to work
Referencing another website I see Ctrl key is ^
and Shift key is +
and r is r
but it doesn't seem to run the combination correctly
5/25/18 I made some changes to my code, I seem to be getting closer to figuring it out.
@echo off
forfiles -p "C:\Program Files (x86)\SummitHealthcare\CommonFiles\TextOut" -s -m *.log /D -0 /C "cmd /c del @path"
wscript.sleep 2000
cd "C:\Program Files (x86)\SummitHealthcare\Scripting Toolkit 7\Projects"
start Single_BARCommentsDBwithLoop23.ssc
wscript.sleep 1000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{F10}"
wscript.sleep 2000
WshShell.SendKeys "{r}"
I have the code delete old cache files for the application, Then the script waits, Opens up the application then waits again then makes the keystrokes F10 and r to start the application. For some reason the keystrokes do not seem to be registering. I've Tried separating the key strokes to its own script and it works fine. I've tried making the wait longer. I've also tried adding the code below to select and make sure the application is active. Adding this code seems to break the entire code.
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "Summit.Scripting.Toolkit.exe"
Some code must be conflicting.
Solution 1:[1]
I had a similar question: VBScript sendkeys, Trying to do CTRL+ALT+A
The only things I could find is to use a powershell script that send the keys combination and run it from your VBScript.
The VBS "WshShell.SendKeys" doesn't work every time. For the example in the link, when I was using the command, it worked like 1 time out of 4 or 5 (it's not reliable)
Solution 2:[2]
If you're going to press the "r" key, you should use this code: wscript.sleep 2000
cd "C:\Program Files (x86)\SummitHealthcare\Scripting Toolkit 7\Projects"
start Single_BARCommentsDBwithLoop23.ssc
wscript.sleep 1000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{F10}"
wscript.sleep 2000
WshShell.SendKeys "r"@echo off
forfiles -p "C:\Program Files (x86)\SummitHealthcare\CommonFiles\TextOut" -s -m *.log /D -0 /C "cmd /c del @path"
wscript.sleep 2000
cd "C:\Program Files (x86)\SummitHealthcare\Scripting Toolkit 7\Projects"
start Single_BARCommentsDBwithLoop23.ssc
wscript.sleep 1000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{F10}"
wscript.sleep 2000
WshShell.SendKeys "r"
You're sending the key stroke as a character, so you would want to press "r" rather than "{r}"
Now, I did start learning/experimenting with VBS like 3 days ago, but I think that this code would work a bit better.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tommy |
| Solution 2 | npxr c |
