Is it possible to install exe via ruby code?


#1

I have a exe file in c:/test.exe

I have a script to run the exe.

Script :

require ‘watir’
ie=Watir::IE.new
ie.goto(“file:///C:/putty.rar”)

But unfortunately i was not able to handle the run time windows such as
asking

  1. window with Extract and cancel option
  2. File path asking window.

How can i automate it? please give a idea…

Thanks in advance.


#2

Sorry for the wrong code in previous post

working code:

require ‘watir’
ie=Watir::IE.new
ie.goto(“file:///c:/test.exe”)


#3

jazzez ravi wrote:

Sorry for the wrong code in previous post

working code:

require ‘watir’
ie=Watir::IE.new
ie.goto(“file:///c:/test.exe”)

Ill share with you one of my Top Secret scripts.
This will boost your productivity !!!

What you need is there …just adapt it to your needs.

#| Pajarito de Homero /Homer Simposon’s desktop bird V 1.0 - Ruby
implementation
#|
#| Ejemplos:
#|
#| send_key_until_is_dead(“Messenger Service”)
#| send_key_until_is_dead(“Atari - Olimpic Games, 100 meters”,“a”)
#|
#Inspired by Homer Simposon’s desktop bird
def homers_bird(dialog_name,key="{enter}")

require ‘win32ole’
wsh = WIN32OLE.new(‘WScript.Shell’)

puts “Let’s remember our old Atari games…!”
puts “We’ll kill <#{dialog_name}> …”

while wsh.AppActivate(dialog_name)
wsh.SendKeys("{enter}")
sleep 0.1
puts “Shoot !”
end

puts “You win !!!”

end
c:\\test.exe
send_key_until_is_dead(“Installing”)


#4

Hi Rodrigo B.,

Thanks for help…

Still i am facing some issues. Details follows…

CODE:

def homers_bird(dialog_name,key="{enter}")
require ‘pp’
require ‘win32ole’
require “rubygems”
require “win32ole_pp”

wsh = WIN32OLE.new(‘WScript.Shell’)

puts wsh.AppActivate(dialog_name)

while wsh.AppActivate(dialog_name)
wsh.SendKeys("{enter}")
sleep 0.1
puts “Shoot !”
end

puts "You win !!!!"

end

C:\\MAIN\\Work\\sw\\tvcnew.exe
homers_bird(“Setup - Total Video Converter 3.12”,"{enter}")

OUTPUT:

It doesn’t automatically enter the ENTER key. So i press in manual then
i got output like this

false
You win !!!

ISSUE:

The code --> puts wsh.AppActivate(dialog_name) sayd “false” to me. I
tried few other EXE files also but i am still doesn’t get the output.

Please BOOST me once again…

Waiting for ur reply


#5

Hi Rodrigo B.,

Please see the attachment and let me know ur feedback.

Sorry for disturbing you continuously…

Thanks in Advance.


#6

Waiting for ur reply

It seems your are not getting the focus on the target window.

puts wsh.AppActivate(“change this string until it works”)
wsh.SendKeys("{enter}")

-r.


#7

jazzez ravi wrote:

Hi Rodrigo B.,

Please see the attachment and let me know ur feedback.

Sorry for disturbing you continuously…

Thanks in Advance.

This strange. Are on Windows Vista /?

-r.


#8

Hi Rodrigo B.,

OS --> Windows XP + Service pack3

This strange. Are on Windows Vista /?

-r.


#9

David M. wrote:

jazzez ravi wrote:

Hi Rodrigo B.,

Please see the attachment and let me know ur feedback.

Sorry for disturbing you continuously…

Thanks in Advance.

I believe the AppActivate method searches the text in the title bar of
the open windows.

Based on that, and the image you provided, I suspect that the
AppActivate method fails on this window because the window has no title
bar.

David

http://rubyonwindows.blogspot.com

There are some installers which accept command line arguments.
Have you tried in your terminal :
installer.exe --help or installer.exe \h


#10

jazzez ravi wrote:

Hi Rodrigo B.,

Please see the attachment and let me know ur feedback.

Sorry for disturbing you continuously…

Thanks in Advance.

I believe the AppActivate method searches the text in the title bar of
the open windows.

Based on that, and the image you provided, I suspect that the
AppActivate method fails on this window because the window has no title
bar.

David

http://rubyonwindows.blogspot.com


#11

Hi Rodrigo Bermej,

Finally i got the solution via command prompt. Yes, I ran the Exe from
command prompt and ran the script now it is working fine. I am trying to
implement via ruby code. Thanks for your big help to freshers like me…

Hi David M. & Tsunami Scrip

Thanks for your help.

Regards,
P.Raveendran


#12

Tsunami S. wrote:

Maybe process explorer ( from sysinternals ) can help you a bit to
locate the process you need , and you could try to get to it based on a
PID , or it’s command line . If that doesn’t work , I believe Visual
Studio has a tool ( named spy something ) , which gives you a lot of
information about a window .

FWIW, the AutoIt[1] package contains a tool that which will tell you a
tonne of information about the focussed window.

[1]http://www.autoitscript.com/autoit3/index.shtml

HTH

Matt


#13

Maybe process explorer ( from sysinternals ) can help you a bit to
locate the process you need , and you could try to get to it based on a
PID , or it’s command line . If that doesn’t work , I believe Visual
Studio has a tool ( named spy something ) , which gives you a lot of
information about a window .