From: Daniel Berger Date: 2006-04-30T02:13:06+09:00 Subject: Win32API, CreateProcess and environment Hi all, Ruby 1.8.4 I'm working on a pure Ruby Process.create method. What I have below seems to work, except that if I attempt to pass an environment string, it causes the app to die instantly. What am I doing wrong? require 'Win32API' params = 'LPLLLLLLPP' CreateProcess = Win32API.new('kernel32','CreateProcess', params, 'I') def create(hash={}) env = 0 if hash['environment'] env = hash['environment'].split(File::PATH_SEPARATOR) << nil env = env.pack('p*').unpack('L').first end startinfo = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] startinfo = startinfo.pack('LLLLLLLLLLLLSSLLLL') procinfo = [0,0,0,0].pack('LLLL') CreateProcess.call( 0, "notepad", 0, 0, 0, 0, env, 0, startinfo, procinfo ) return procinfo[8,4].unpack('L').first # pid end p create() # ok p create('environment'=>"PATH=C:\\;LIB=C:\\lib" # boom! What have I goofed up here? Thanks, Dan