Is it possible to install exe via ruby code ?

J

jazzez ravi

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

jazzez ravi

Sorry for the wrong code in previous post

working code:

require 'watir'
ie=Watir::IE.new
ie.goto("file:///c:/test.exe")
 
R

Rodrigo Bermejo

jazzez said:
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")
 
J

jazzez ravi

Hi Rodrigo Bermejo,

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
 
R

Rodrigo Bermejo

Waiting for ur reply

It seems your are not getting the focus on the target window.
<the argument to AppActivate is the title displayed on the window>


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


-r.
 
R

Rodrigo Bermejo

jazzez said:
Hi Rodrigo Bermejo,

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

David Mullet

jazzez said:
Hi Rodrigo Bermejo,

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
 
R

Rodrigo Bermejo

David said:
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
 
T

Tsunami Script

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

jazzez ravi

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 Mullet & Tsunami Scrip

Thanks for your help.

Regards,
P.Raveendran
http://raveendran.wordpress.com
 
M

Matt Harrison

Tsunami said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,009
Latest member
GidgetGamb

Latest Threads

Top