Hi,
I added win32_kill method to kill piped process, because
Process.kill("KILL",pid) is failed on Ruby 1.6.8.

IO#win32_kill(pid)
Terminate the specified process id.

You can kill piped process like this:

fin,fout,ferr = IO.win32_popen3("date")
IO.win32_kill(fin.pid)  # fin.pid, fout.pid, ferr.pid ->  pid of piped
process
#  Process.kill("KILL",fin.pid) also available on Ruby v1.8.0

Regards.

Park Heesob

"Park Heesob" <phasis / kornet.net> wrote in message
news:auremp$s0b$1 / news.hananet.net...
>
> win32_popen is popen2,popen3,popen4 implementation on Windows adapted from
> Python source code.
>
>
>
> You can download mswin binary for your Ruby version.
> http://home.nownuri.net/~phasis/popen/win32_popen_1.6.8.zip
> http://home.nownuri.net/~phasis/popen/win32_popen_1.8.0.zip
> Souce code and binary included.
>
> [Requirement]
>
> * Ruby 1.6.5+
>
> It may be made with other version but not verified.
>
> [Install binary]
>
>  > ruby install.rb
>
> [Install from source]
>
>  > ruby extconf.rb
>  > nmake
>  > ruby install.rb
>
> [methods]
>
> IO#win32_popen2(cmd[, mode])
> Executes cmd as a sub-process. Returns the file objects (child_stdin,
> child_stdout).
>
> IO#win32_popen3(cmd[, mode])
> Executes cmd as a sub-process. Returns the file objects (child_stdin,
> child_stdout, child_stderr).
>
> IO#win32_popen4(cmd[, mode]])
> Executes cmd as a sub-process. Returns the file objects (child_stdin,
> child_stdout_and_stderr).
>