I had a program that used a process thread to press an OK button on a
popup
require ‘win32/process’
require ‘autoit’
@popup_handler_pid = Process.fork
if @popup_handler_pid == nil # Child process
require ‘win32ole’;
autoit = WIN32OLE.new(‘AutoItX3.Control’);
while true
while autoit.WinExists(“Message from webpage”) == 0
sleep 0.1;
end;
autoit.Send(’{ENTER}’);
end
end
The problem occurs when I try and kill the process
Process.kill(1, @popup_handler_pid)
Trace
c:/ruby/lib/ruby/gems/1.8/gems/win32-process-0.5.1/lib/win32/process.rb:182:in
kill': undefined method
CreateRemoteThread’ for Process:Module
(NoMethodError)
from
c:/ruby/lib/ruby/gems/1.8/gems/win32-process-0.5.1/lib/win32/proces
s.rb:132:in each' from c:/ruby/lib/ruby/gems/1.8/gems/win32-process-0.5.1/lib/win32/proces s.rb:132:in
kill’
from C:/MyProg.rb:136
Win 7 required a new version of windows-pr, which needed a new versions
of win32-api, test-unit, windows-api
Unfortunately win32-api uses or is dependent on nmake which I dont have
so I installed win32-api-1.4.5-x86-mswin32-60. The binary needed no
nmake.
Well the upshot was they all installed and appeared to be happy. The
task creates and works, but when you try and kill it - the libarary
appears to make calls internally that result in a failure.
It all runs fine with the older windows-pr on XP
Paul