From: arton Date: 2001-03-16T04:05:14+09:00 Subject: [ruby-list:28781] Re: Win32_process.create PID artonです。 On Thu, 15 Mar 2001 23:47:08 +0900 Koga Atsushi wrote: > Win32OLE::ARGV, 期待してていいですか?(^^; diff win32ole.c.org win32ole.c 1114c1114,1115 < --- > VALUE args; > 1210a1212,1214 > args = rb_cvar_get(cWIN32OLE, rb_intern("ARGV")); > rb_eval_string("WIN32OLE::ARGV.clear"); > 1230c1234,1235 < for(i = 0; i < op.dp.cArgs; i++ ) { --- > for(i = op.dp.cArgs - 1; i >= 0; i--) { > rb_ary_push(args, ole_variant2val(&op.dp.rgvarg[i])); 2275a2281,2282 > rb_define_const(cWIN32OLE, "ARGV", rb_ary_new()); > これは、win32oleのパッチですが、それとは別に、ActiveScriptRubyにも入れて みました。(というか、win32ole側には入れてないですが) #rb_ary_clearを外部に出して欲しいです。 (ページ自体の更新は、後日) require 'win32ole' locator = WIN32OLE.new("WbemScripting.SWbemLocator.1") p WIN32OLE::ARGV service = locator.ConnectServer p WIN32OLE::ARGV proc = service.Get "Win32_Process" p WIN32OLE::ARGV rc = proc.Create('notepad.exe', 'd:\\work', nil, nil) WIN32OLE::ARGV.each do |x| p x end をActiveScriptRubyで実行 cscript argtest.rb Microsoft (R) Windows Script Host Version 5.1 for Windows Copyright (C) Microsoft Corporation 1996-1999. All rights reserved. ruby: warning: already initialized constant ARGV [] [] ["Win32_Process"] "notepad.exe" "d:\\work" nil 1684 で、Taskmanで、notepad.exeのプロセスIDは、1684を確認。 -- arton