Forum: Ruby Is it possible to install exe via ruby code ?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Raveendran .. (Guest)
on 2009-01-20 13:51
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.
Raveendran .. (Guest)
on 2009-01-20 14:00
Sorry for the wrong code in previous post

working code:

require 'watir'
ie=Watir::IE.new
ie.goto("file:///c:/test.exe")
Rodrigo B. (Guest)
on 2009-01-20 17:12
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")
Raveendran .. (Guest)
on 2009-01-21 07:53
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
Rodrigo B. (Guest)
on 2009-01-21 20:50
>
> 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.
Raveendran .. (Guest)
on 2009-01-22 07:03
Attachment: Issue_i_am_facing.JPG (0 Bytes)
Hi Rodrigo B.,

Please see the attachment and let me know ur feedback.

Sorry for disturbing you continuously..

Thanks in Advance.
Rodrigo B. (Guest)
on 2009-01-26 17:29
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.
Raveendran .. (Guest)
on 2009-01-27 05:30
Hi Rodrigo B.,

OS --> Windows XP + Service pack3

>
> This strange. Are on Windows Vista /?
>
> -r.
David M. (Guest)
on 2009-01-27 16:03
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
Rodrigo B. (Guest)
on 2009-01-27 18:01
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
Tsunami S. (Guest)
on 2009-01-28 01:45
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 .
Raveendran .. (Guest)
on 2009-01-28 06:37
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
http://raveendran.wordpress.com
Matt H. (Guest)
on 2009-01-28 20:18
(Received via mailing list)
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
This topic is locked and can not be replied to.