Batch File to call VBS which sends keys to application - windows

So I am trying to make a batch file that will download your search history. In doing this I need to use the keys Ctrl+A and Ctrl+S along with typing the name of the file. I just need to find a way to have the code automatically carry out the action of selecting all the history by Ctrl+A and saving it by Ctrl+S and then naming it scarra history.
I have a folder containing 4 files:
Scarra.bat
ChromeHistoryView.exe
Sendkeys.bat
Sendkeys.vbs
Scarra.bat is as follows:
call ChromeHistoryView.exe
call sendkeys.bat
pause
Sendkeys.vbs is as follows:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "^a"
Sendkeys.bat is as follows, this is what I use to try to call the bat:
wscript "sendkeys.vbs"

Add this to Sendkeys.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "^a"
WScript.Sleep 1000
WshShell.SendKeys "^s"
WScript.Sleep 2000
WshShell.SendKeys "scarra history"
Change Sendkeys.bat to
cscript sendkeys.vbs

Related

Fill text in selected field from active window - VBScript, WScript.Shell

I use vbs to upload files into SAP. After clicking "add file" in sap I have the following window on the screen.
I can't control that window using SAP Object so I use WScript.Shell. My question is - how to paste text (file path) to the field "File name:"? I was using wshShell.SendKeys "{TAB}" to jump from one field to another and paste file path, but somehow it doesn't work always. How to get control over that field "File name:" directly and edit it's value?
My code here:
Set wshShell = CreateObject("WScript.Shell")
filePath = "C:\image.png"
wshShell.AppActivate("Storing Files in Documents")
WScript.sleep 200
wshShell.SendKeys "{TAB}"
WScript.sleep 200
wshShell.SendKeys filePath
WScript.sleep 200
wshShell.SendKeys "{ENTER}"
WScript.Quit
Regards

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

notepad loop created automatically with VBScript

I've created a VBScript to open notepad and write Hello. But it is opening notepad again and again
my code is:
WScript.Sleep 1000
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 100
WshShell.AppActivate "Notepad"
WScript.Sleep 500
WshShell.SendKeys "Hello"
WScript.Sleep 500
Did you name your script notepad.vbs? please change the name, or
WshShell.Run "notepad.exe"
If no full path specified, windows will try to find the program in the working directory first instead of %PATH%.

VBSCRIPT SAVEAS

I have the following:
set wshshell=createobject("wscript.shell")
wshshell.run """C:\ReportName.pdf"""
This opens the named PDF. What code do I need to save that opened file as, like a SaveAs.. saving it as the same filename?
Thanks
Here is sample code
set wshshell=createobject("wscript.shell")
wshshell.run """C:\ReportName.pdf"""
wscript.sleep 2000 'sleep for 2 seconds to ensure file is open
wshshell.SendKeys "%{F}{A}" 'simulate ALT+F+A to open SaveAs dialog
wscript.sleep 5000 ' sleep for 5 seconds so that the save as dialog is open
wshshell.SendKeys "+{TAB}{ENTER}" 'simulate Shit+Tab so that the tab is moved backed to Choose a diff folder option
wscript.sleep 2000
wshshell.SendKeys "C:\NewFile.PDF{ENTER}"
wscript.sleep 3000
wshshell.SendKeys "%{F}{X}"
It sounds like you want to copy the file or move/rename the file. If so, use FileSystemObject:
Set fso = CreateObject("Scripting.FileSystemObject")
Call fso.CopyFile("C:\ReportName.pdf", "C:\NewReport.pdf")
' or
Call fso.MoveFile("C:\ReportName.pdf", "C:\NewReport.pdf")

How Can i open an cmd prompt and set an path to open an .bat file in Vb Script..?

I need to Automate the Whole Process, So the Cmd Prompt opens and path is set there for the .bat file to open
I have tried with Window Shell Commands to do this .. they work fine .. But i need some other way to open and set the path to run the file ..can anyone help me
Thanks In Advance
Here you go
Set WshShell = wscript.CreateObject("wscript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 100
wshshell.sendkeys "c:\path"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "SET PATH=%PATH%;c:\tmp"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "batch.cmd"
wshshell.sendkeys "{ENTER}"

Resources