Thanks so much for developing this.  I can put it to good use right now.
I've done some experimenting with your code.
I'm using ruby 1.66, so, some of what I've found may be due to that.
1.  When using win32_popen3 to pipe a ruby script you must use the command
("ruby.exe  scriptname") in order for both fin and fout to work properly.
      If you use the command("scriptname") the child script will run but fin
doesn't work properly.  You get the following error in the child script
        Bad file descriptor (Errno::EBADF)
2.  When using Marshal to pipe an object to a script the following doesn't
work (Marshal barks at it)
        Marshal.dump(some_object, fin)

    However, you can overcome this by
        data=Marshal.dump(some_object)
        fin.print data

      on the client side you can retrieve the object
      some_obj=Marshal.load($stdin)

Thanks again for a slick piece of work.

Ernie
"Park Heesob" <phasis / kornet.net> wrote in message
news:auremp$s0b$1 / news.hananet.net...
> Hi, all.
>
> win32_popen is popen2,popen3,popen4 implementation on Windows adapted from
> Python source code.
>
> Regards.
>
> Park Heesob
>
>
>