I’m making a system call in Windows to a program from within my Rails
app., and when it executes, a command window opens up by default for the
duration of the program run.
I’m pretty sure that there’s a way to hide this window when I run the
command.
Does anyone know how to do this?
Alternatively, I tried to set up a shortcut pointing to the executable
that runs with the window minimized but wasn’t able to invoke it
successfully using system(shortcut_name).
I had a similar problem using another language. I don’t think that there
are command line or ruby system() options that let you control this.
My solution was to write a very stupid .Net executable; that just ran
the programme that I needed in a controlled window [:ie background &
minimised]. From .Net its really easy to access the windowing bits of
windows.
Not a very elegant hack, but it worked.
rgds
matt.
Wes G. wrote:
I’m making a system call in Windows to a program from within my Rails
app., and when it executes, a command window opens up by default for the
duration of the program run.
I’m pretty sure that there’s a way to hide this window when I run the
command.
Does anyone know how to do this?
Alternatively, I tried to set up a shortcut pointing to the executable
that runs with the window minimized but wasn’t able to invoke it
successfully using system(shortcut_name).
My solution was to write a very stupid .Net executable; that just ran
the programme that I needed in a controlled window [:ie background &
minimised]. From .Net its really easy to access the windowing bits of
windows.
Not a very elegant hack, but it worked.
Would you be willing to share this code? I assume it’s in C# and that
would require a C# compiler (which I don’t have).
I’m making a system call in Windows to a program from within my Rails
app., and when it executes, a command window opens up by default for the
duration of the program run.
I’m pretty sure that there’s a way to hide this window when I run the
command.
Does anyone know how to do this?
Alternatively, I tried to set up a shortcut pointing to the executable
that runs with the window minimized but wasn’t able to invoke it
successfully using system(shortcut_name).
Any help is appreciated.
Wes
Wes-
Using the win32ole library, you could call the Run method of the
Wscript.Shell object…
require ‘win32ole’
cmd = “application.exe”
windowstate = 0 # hidden
wait = 1 # wait for process to complete
WIN32OLE.new(‘Wscript.Shell’).Run(cmd, windowstate , wait)