I have a FTP client that also has Console interface for automation. In order to use this I am using the below
Set ccaFtpShellScript = WScript.CreateObject("WScript.Shell") ccaFtpShellScript.run "cmd /K CD /d C:\Program Files\WinSCP\" 'This opens the FTP client in console window
ccaFtpShellScript.SendKeys "winscp.exe /console /script=FTPConnectAndGetXMLQA.txt" ' This a console command prescribed 'by the client with FTP connection details specified in the text file FTPConnectAndGetXMLQA
'To send these keys I need the console window to be the active window. If I click on any other applications window in the mean 'time the send keys method writes the command line to that application
When I try to use "cmd /C" switch the result is the same. No errors but I do not know where is it being written.
How can I tell windows to inactivate other windows force during this time so that no one or no application can create a new window? OR How can I activate a particular window before executing "SendKeys" method.
First, why do you want to use Sendkeys to invoke the executable? It can be executed directly using something like this ...
Set oShell = CreateObject("WScript.Shell") oShell.Run "C:\Program Files\WinSCP\winscp.exe /console /script=FTPConnectAndGetXMLQA.txt"
Or if the working folder needs to be changed first ...
Set oShell = CreateObject("WScript.Shell") oShell.curentdirectory = "C:\Program Files\WinSCP" oShell.Run "winscp.exe /console /script=FTPConnectAndGetXMLQA.txt", 1, True ' shows window and waits
Finally, if you insist on using Sendkeys, try using the AppActivate function something like this example ...
Set oShell = CreateObject("WScript.Shell") oShell.run "%comspec% /k", 1 , false sTitle = oShell.ExpandEnvironmentStrings("%COMSPEC%") Do until oShell.AppActivate(sTitle) :wsh.sleep 50 : Loop ' wait to open if oShell.AppActivate(sTitle) then oShell.Sendkeys "DIR *.txt /b{enter}" ' send the command wsh.sleep 2000 ' pause if oShell.AppActivate(sTitle) then oShell.Sendkeys "exit{enter}" ' close the example window
Tom Lavedas
Edited byTom LavedasModeratorWednesday, November 04, 2009 1:56 PMminor language fix
Marked As Answer byKiranChaturvedulaThursday, November 05, 2009 6:05 AM
Microsoft is conducting an online survey to understand your opinion of the Technet Web site. If you choose to participate, the online survey will be presented to you when you leave the Technet Web site.