From: Masaki Suketa Date: 2004-07-05T19:53:30+09:00 Subject: Re: win32ole and uint64 handling Hello, In message "win32ole and uint64 handling" on 04/07/03, Daniel Berger writes: > instead of a Fixnum (or Bignum). Here's a little demo program: > # string > p proc.Caption > p proc.Caption.class # String > puts "=" * 20 > (snip) > # uint64 > p proc.KernelModeTime > p proc.KernelModeTime.class # String ?! > p proc.WorkingSetSize > p proc.WorkingSetSize.class # String ?! > Any chance this can be fixed before 1.8.2 final? Unfortunately, it is not easy to fix this problem. Because, proc.KernelModeTime and WorkingSetSize are VT_BSTR OLE type. And win32ole converts VT_BSTR object of OLE to String of Ruby. In VBScript, proc.KernelModeTime and proc.WorkingSetsize are VT_BSTR(vbString) type. Set wmi = getObject("winmgmts:") for each proc in wmi.InstancesOf("Win32_Process") WScript.Echo proc.Caption WScript.Echo VarType(proc.Caption) ' ==> 8:vbString WScript.Echo "============================" WScript.Echo proc.ParentProcessId WScript.Echo VarType(proc.ParentProcessId) ' ==> 3:vbLong WScript.Echo proc.SessionId WScript.Echo VarType(proc.SessionId) ' ==> 3:vbLong WScript.Echo "============================" WScript.Echo proc.KernelModeTime WScript.Echo VarType(proc.KernelModeTime) ' ==> 8:vbString WScript.Echo proc.WorkingSetSize WScript.Echo VarType(proc.WorkingSetSize) ' ==> 8:vbString exit for next Regards, Masaki Suketa