require 'open3' path = 'Game.exe' Open3.popen3(path) do |stdin, stdout, stderr, thr| while 0 rs, ws = IO.select([stdout], [stdin], [], 0.01) if r = rs[0] line = stdout.gets if line =~ /\[ruby\](.*)/ r = eval($1).inspect stdin.write r stdin.write "\n" stdin.flush end end break if !thr.alive? sleep 0.01 end end