[#45942] win32ole and excel — Martin Stannard <martin@...>

Hi,

19 messages 2002/08/01

[#45948] "gets" blocking process not thread (in Windows only) — Matt Pattison <mfp@...>

The problem with my program is that (in Windows) gets seems to block the entire

13 messages 2002/08/01

[#46030] IO.readlines is slow ? — "Shashank Date" <ADATE@...>

I really like the convenience of doing:

18 messages 2002/08/02

[#46072] How to Load Script from a C Extension? — William Djaja Tjokroaminata <billtj@...>

Hi,

20 messages 2002/08/02

[#46107] embed or swig? — ptkwt@...1.aracnet.com (Phil Tomson)

I'm working a C++ project for a contract I'm doing. Originally, the

21 messages 2002/08/03

[#46128] Assoc Class (Hash Pairs) — Tom Sawyer <transami@...>

i've been thinking about posting this as an RCR.

28 messages 2002/08/03

[#46136] Should this work? — "Hal E. Fulton" <hal9000@...>

Should multiple assignment work for the

17 messages 2002/08/03

[#46192] Detecting when an instance variable is created/set — Harry Ohlsen <harryo@...>

Imagine we have a class like ...

22 messages 2002/08/04
[#46198] Re: Detecting when an instance variable is created/set — Tom Sawyer <transami@...> 2002/08/04

On Sun, 2002-08-04 at 06:03, Harry Ohlsen wrote:

[#46207] Re: Detecting when an instance variable is created/set — Harry Ohlsen <harryo@...> 2002/08/04

> > Can I write a method (of class Object or Kernel, perhaps) that will be

[#46226] Re: Detecting when an instance variable is created/set — Massimiliano Mirra <list@...> 2002/08/04

On Sun, Aug 04, 2002 at 10:32:44PM +0900, Harry Ohlsen wrote:

[#46264] Dynamic creation of classes and methods — Tomasz Wegrzanowski <taw@...>

I want to create classes and methods on fly.

11 messages 2002/08/05

[#46341] More questions on automation from na誰ve Windows user. — Chris Gehlker <gehlker@...>

Hi all,

15 messages 2002/08/05

[#46356] Coding challenge (on Ruby Garden) — David Alan Black <dblack@...>

Hello --

47 messages 2002/08/06

[#46357] Compiling Ruby to Native Code? — web2ed@... (Edward Wilson)

Having looked at OCaml, after following a post to this group, one

20 messages 2002/08/06

[#46426] Is There an Inverse of 'rb_define_method'? — William Djaja Tjokroaminata <billtj@...>

Hi,

15 messages 2002/08/06

[#46442] COM on Unix? — Chris Gehlker <gehlker@...>

As part of my crusade to make Ruby an automation language I read up a little

12 messages 2002/08/06

[#46443] Dup and Clone — "Justin Johnson" <justinj@...>

Could anyone kindly point out the difference between 'dup' and 'clone'?

17 messages 2002/08/06

[#46475] Named paramters again — "Justin Johnson" <justinj@...>

26 messages 2002/08/07
[#46534] Re: Named paramters again — "Gavin Sinclair" <gsinclair@...> 2002/08/07

[#46537] RE: Named paramters again — "Rich Kilmer" <rich@...> 2002/08/07

[#46550] GUI's and the Rouge, Part IV — Kero van Gelder <kero@...>

Funny, two savannah accounts for the same objective:

12 messages 2002/08/07

[#46565] Re: Unicode in Ruby now? — "Marcin 'Qrczak' Kowalczyk" <qrczak@...>

Wed, 7 Aug 2002 16:41:18 +0900, Curt Sampson <cjs@cynic.net> pisze:

12 messages 2002/08/07

[#46732] ambiguity between local variable assignment and writter method — Tom Sawyer <transami@...>

does anyone else find it annoying that local variable assignment is

56 messages 2002/08/09
[#46788] Re: ambiguity between local variable assignment and writter method — dblack@... 2002/08/10

Hi --

[#46791] Re: ambiguity between local variable assignment and writter method — Tom Sawyer <transami@...> 2002/08/10

On Fri, 2002-08-09 at 22:50, dblack@candle.superlink.net wrote:

[#46794] Re: ambiguity between local variable assignment and writter method — dblack@... 2002/08/10

Hi --

[#46734] Re: ambiguity between local variable assignment and writter method — Paul Brannan <pbrannan@...> 2002/08/09

On Sat, Aug 10, 2002 at 03:00:28AM +0900, Tom Sawyer wrote:

[#46737] Re: ambiguity between local variable assignment and writter method — Tom Sawyer <transami@...> 2002/08/09

On Fri, 2002-08-09 at 12:05, Paul Brannan wrote:

[#46739] Re: ambiguity between local variable assignment and writter method — Dave Thomas <Dave@...> 2002/08/09

Tom Sawyer <transami@transami.net> writes:

[#46741] Re: ambiguity between local variable assignment and writter method — GOTO Kentaro <gotoken@...> 2002/08/09

At Sat, 10 Aug 2002 03:44:45 +0900,

[#46748] Re: ambiguity between local variable assignment and writter method — Dave Thomas <Dave@...> 2002/08/09

GOTO Kentaro <gotoken@notwork.org> writes:

[#46753] Re: ambiguity between local variable assignment and writter method — Tom Sawyer <transami@...> 2002/08/09

On Fri, 2002-08-09 at 13:30, Dave Thomas wrote:

[#46841] Ah, I'm finally back from Japan ... — Dossy <dossy@...>

Not like anyone cares (or noticed) but my two week stay in Japan

12 messages 2002/08/10

[#46875] To be a Module, or not to be... — Holden Glova <dsafari@...>

-----BEGIN PGP SIGNED MESSAGE-----

12 messages 2002/08/11

[#46911] Choosing ruby? — Rhymes <raims@...>

27 messages 2002/08/11

[#46957] Handling forms on database driven websites — Philip Mak <pmak@...>

Ever since I learned Perl, Ruby and MySQL, I've built several database

10 messages 2002/08/12

[#47000] Primary Key Hash help — "Chris Morris" <chrismo@...>

I have a huge data file with rows like this:

17 messages 2002/08/12

[#47134] Data_Make_Struct Considered Dangerous? — William Djaja Tjokroaminata <billtj@...>

Hi,

39 messages 2002/08/13

[#47212] Ruby Weekly News — Dave@...

21 messages 2002/08/14

[#47292] Thought question: Where does "new" come from? — "Hal E. Fulton" <hal9000@...>

I've been brooding again on the circularities

28 messages 2002/08/15
[#47342] Re: Thought question: Where does "new" come from? — "Hal E. Fulton" <hal9000@...> 2002/08/15

----- Original Message -----

[#47346] Re: Thought question: Where does "new" come from? — dblack@... 2002/08/15

Hi --

[#47365] Re: Thought question: Where does "new" come from? — "MikkelFJ" <mikkelfj-anti-spam@...> 2002/08/15

[#47369] Re: Thought question: Where does "new" come from? — dblack@... 2002/08/15

Hello --

[#47372] Re: Thought question: Where does "new" come from? — "MikkelFJ" <mikkelfj-anti-spam@...> 2002/08/15

[#47377] Re: Thought question: Where does "new" come from? — dblack@... 2002/08/16

Hi --

[#47344] eruby editor — "Kyle Wilson" <kyle.wilson@...>

Hello. I was wondering if anyone knows of a text editor which will

17 messages 2002/08/15

[#47440] Help with a segv in mod_ruby — Dave Thomas <Dave@...>

14 messages 2002/08/16

[#47461] How do I dup file descriptors in ruby? (diverting STDERR) — "Richard A. Ryan" <ryan@...>

Hello,

12 messages 2002/08/16

[#47464] IDE vs. editor — Holden Glova <dsafari@...>

-----BEGIN PGP SIGNED MESSAGE-----

43 messages 2002/08/16

[#47547] Re: What Ruby needs. — "Shashank Date" <ADATE@...>

I do not have any problem with item 1) on your wish list as long as I don't

13 messages 2002/08/18

[#47559] Ruby Bot — Giuseppe Bilotta <bilotta78@...>

Hello,

14 messages 2002/08/18

[#47643] thread control — "Shashank Date" <ADATE@...>

I am trying to write a ruby script (Ruby 1.7.2 mswin32) which does the

21 messages 2002/08/20

[#47695] What makes a "good" Ruby extension? — Tim Hunter <cyclists@...>

So I'm reading the "Comparing Gui Toolkits" wiki page

14 messages 2002/08/20

[#47749] What New Language After Ruby? — William Djaja Tjokroaminata <billtj@...>

To Andrew Hunt and David Thomas:

74 messages 2002/08/21
[#47754] Re: What New Language After Ruby? — Wilkes Joiner <boognish23@...> 2002/08/21

Although activity seems to have died down, here are some links

[#47817] A Repeat: New Language After Ruby? — William Djaja Tjokroaminata <billtj@...>

Hi,

54 messages 2002/08/21
[#47820] RE: A Repeat: New Language After Ruby? — " JamesBritt" <james@...> 2002/08/21

[#47918] Win32 Scripting — Sean Middleditch <elanthis@...>

Hi,

13 messages 2002/08/22

[#48035] Why Ruby Uses Mark-and-Sweep GC? — William Djaja Tjokroaminata <billtj@...>

Hi,

39 messages 2002/08/23

[#48062] Ruby and Judy — Joseph McDonald <joe@...>

29 messages 2002/08/23

[#48082] Distributed Object Container — junderdown@... (Jason Underdown)

Is anyone out there in the Ruby community working on an object

23 messages 2002/08/24
[#48185] Re: Distributed Object Container — "Gavin Sinclair" <gsinclair@...> 2002/08/26

----- Original Message -----

[#48223] Ruby Based App Server — junderdown@... (Jason Underdown)

I posted a similar question a few days ago, but didn't get any

21 messages 2002/08/26

[#48264] Ruby developers: help push RPKG development and usage forward!! (it is like CPAN.pm, only Ruby) — itsnewsforme@... (M S)

A big complaint from people looking into Ruby is that they don't see

36 messages 2002/08/27
[#48292] Re: Ruby developers: help push RPKG development and usage forward!! (it is like CPAN.pm, only Ruby) — ts <decoux@...> 2002/08/27

>>>>> "M" == M S <itsnewsforme@yahoo.ca> writes:

[#48296] RE: Ruby developers: help push RPKG development and usage forward!! (it is like CPAN.pm, only Ruby) — "Rich Kilmer" <rich@...> 2002/08/27

Actually, it would be nice to have them online, but not necessarily

[#48336] Re: Ruby developers: help push RPKG development and usage forward!! (it is like CPAN.pm, only Ruby) — Massimiliano Mirra <list@...> 2002/08/27

On Tue, Aug 27, 2002 at 09:39:32PM +0900, Rich Kilmer wrote:

[#48358] RE: Ruby developers: help push RPKG development and usage forward!! (it is like CPAN.pm, only Ruby) — "Rich Kilmer" <rich@...> 2002/08/28

http://kt-www.jaist.ac.jp/~ttate/ruby/ruby-dl.html

[#48362] RE: Ruby developers: help push RPKG development and usage forward!! (it is like CPAN.pm, only Ruby) — Tom Sawyer <transami@...> 2002/08/28

On Tue, 2002-08-27 at 19:32, Rich Kilmer wrote:

[#48367] RE: Ruby developers: help push RPKG development and usage forward!!(it is like CPAN.pm, only Ruby) — "Rich Kilmer" <rich@...> 2002/08/28

You can just install it in another directory and then go to that

[#48369] RE: Ruby developers: help push RPKG development and usage forward!!(it is like CPAN.pm, only Ruby) — Tom Sawyer <transami@...> 2002/08/28

uh, sorry, how do i get 1.7.2? i tried anonymous cvs but it said NO. did

[#48371] RE: Ruby developers: help push RPKG development and usageforward!!(it is like CPAN.pm, only Ruby) — "Rich Kilmer" <rich@...> 2002/08/28

Nightly CVS snapshot:

[#48274] ANN: RJudy-0.1 - Judy Arrays for Ruby — Lyle Johnson <lyle@...>

All,

17 messages 2002/08/27

[#48477] Newbie converting brain from perl — William Pietri <william-news-383910@...>

20 messages 2002/08/28

[#48544] Best GC for Ruby? — "Justin Johnson" <justinj@...>

34 messages 2002/08/29

[#48573] FXRuby Threading Problem Solved? — Lyle Johnson <lyle@...>

All,

14 messages 2002/08/29

[#48584] suggestions to the Ruby community — stibbs <stibbs@...>

Hi, first i would like to state that i absolutely love Ruby more than any

85 messages 2002/08/29
[#48923] Re: suggestions to the Ruby community — <bbense+comp.lang.ruby.Sep.03.02@...> 2002/09/03

-----BEGIN PGP SIGNED MESSAGE-----

[#48930] RE: suggestions to the Ruby community — " JamesBritt" <james@...> 2002/09/03

> >I was surprised just now to find that there is no absolute requirement

[#49017] Re: suggestions to the Ruby community — <bbense+comp.lang.ruby.Sep.04.02@...> 2002/09/04

-----BEGIN PGP SIGNED MESSAGE-----

[#48657] ICFP Programming Contest — Alan Chen <alan@...>

http://icfpcontest.cse.ogi.edu/task.html

12 messages 2002/08/30

[#48705] Ruby aesthetics — vegai@...

Hello. I've been checking into python lately quite a lot, and I

192 messages 2002/08/31
[#49010] Re: Ruby aesthetics — "Hal E. Fulton" <hal9000@...> 2002/09/04

----- Original Message -----

[#49100] Re: Ruby aesthetics — Paul Prescod <paulp@...> 2002/09/05

On Thu, 5 Sep 2002, Hal E. Fulton wrote:

[#49112] Re: Ruby aesthetics — William Djaja Tjokroaminata <billtj@...> 2002/09/05

Hi,

[#49154] Re: Ruby aesthetics — Paul Prescod <paulp@...> 2002/09/05

On Thu, 5 Sep 2002, William Djaja Tjokroaminata wrote:

[#49161] Re: Ruby aesthetics — Christian Szegedy <szegedy@...> 2002/09/05

Paul Prescod wrote:

[#49173] Re: Ruby aesthetics — William Djaja Tjokroaminata <billtj@...> 2002/09/05

Hi,

[#49183] Re: Ruby aesthetics — <paul@...> 2002/09/05

On Fri, 6 Sep 2002, William Djaja Tjokroaminata wrote:

[#49189] Re: Ruby aesthetics — William Djaja Tjokroaminata <billtj@...> 2002/09/05

I think we have communicated very well; I agree with all you said. May I

[#49191] Re: Ruby aesthetics — <paul@...> 2002/09/05

On Fri, 6 Sep 2002, William Djaja Tjokroaminata wrote:

[#49272] Re: Ruby aesthetics — William Djaja Tjokroaminata <billtj@...> 2002/09/06

Hi Matz,

[#49293] Re: Ruby aesthetics — matz@... (Yukihiro Matsumoto) 2002/09/06

Hi,

[#49312] Re: Ruby aesthetics — <paul@...> 2002/09/06

On Sat, 7 Sep 2002, Yukihiro Matsumoto wrote:

[#49321] Re: Ruby aesthetics — dblack@... 2002/09/06

Hello --

Re: thread control

From: "Park Heesob" <phasis@...>
Date: 2002-08-24 09:40:16 UTC
List: ruby-talk #48087
Hi,

"Shashank Date" <ADATE@kc.rr.com> wrote in message
news:q1599.19624$Hf.636502@twister.kc.rr.com...
> Hi Park,
>
> > If you use command "ping 10.0.0.0 -n 90 -w 1000 > NUL",
> > it creates two processes  'cmd.exe' and 'ping.exe'.
> > I can get pid of 'cmd.exe', but not pid of 'ping.exe'.
>
> If you download pstools from:
>
> http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
>
> and run "pslist -t" it shows you the process tree.
> (There is also a Win2K ResourceKit utility "ptree" which I believe does
the
> same thing).
>
> Which tells me that there is Windows API which exposes the parent-child
> relationship of processes.
> May be that is what is needed to finish it off.
>
> > If you can find pid of 'ping.exe', there's no problem.
> > It's your chance to finish this program perfectly.
>
> Assuming I get hold of the pid for "ping", I guess, I will have to replace
> the following line of your modification:
>
> hProcess = OpenProcess.Call(0x100001, 1 , f.pid)
>                                                                      ^^^^
> with:
>
> hProcess = OpenProcess.Call(0x100001, 1 , ping_pid)
>
> Right ?
>
> I will try ... but I am not as comfortable with Windows API as you are
....so
> I might call for help again ;-)
>
Thanks for your information.
Here is my final version.

#===========================================================================
=====
require 'Win32API'

OpenProcess = Win32API.new("kernel32","OpenProcess",['L','L','L'],'L')
TerminateProcess = Win32API.new("kernel32","TerminateProcess",['L','L'],'L')
WaitForSingleObject =
Win32API.new("kernel32","WaitForSingleObject",['L','L'],'L')
RegCloseKey = Win32API.new("advapi32","RegCloseKey",['L'],'L')
RegOpenKeyEx =
Win32API.new("advapi32","RegOpenKeyEx",['L','P','L','L','P'],'L')
RegQueryValueEx =
Win32API.new("advapi32","RegQueryValueEx",['L','P','L','P','P','P'],'L')

INITIAL_SIZE        = 51200
EXTEND_SIZE         = 25600
REGKEY_PERF         = "software\\microsoft\\windows
nt\\currentversion\\perflib\\009"
REGSUBKEY_COUNTERS  = "Counters"
KEY_READ     =  0x20019;
ERROR_MORE_DATA     = 234
HKEY_LOCAL_MACHINE  = 0x80000002
HKEY_PERFORMANCE_DATA = 0x80000004

# return hash key : parent pids, value : array of  child pids
def getpids()

 result = Hash.new

 hKeyNames = "\0"*4
 rc = RegOpenKeyEx.Call(
HKEY_LOCAL_MACHINE,REGKEY_PERF,0,KEY_READ,hKeyNames)
 hKeyNames = hKeyNames.unpack('L')[0]
 dwSize = "\0"*4
 rc = RegQueryValueEx.Call( hKeyNames,REGSUBKEY_COUNTERS,0,0,0,dwSize)
 dwSize2 = dwSize.unpack('L')[0]
 buf = "\0" * dwSize2
 rc = RegQueryValueEx.Call( hKeyNames,REGSUBKEY_COUNTERS,0,0,buf,dwSize)

 buf2 = Hash[*buf.split("\0")]

 proidx =  buf2.index("Process").to_i
 pididx = buf2.index("ID Process").to_i
 ppididx = buf2.index("Creating Process ID").to_i

 buf = "\0" * INITIAL_SIZE
 szSubKey = proidx.to_s
 dwSize = [INITIAL_SIZE]

 while true
  dwSize2 = dwSize.pack('L')
  rc = RegQueryValueEx.Call( HKEY_PERFORMANCE_DATA,szSubKey,0,0,buf,dwSize2)

  break if rc==0

  if rc == ERROR_MORE_DATA
   dwSize[0] += EXTEND_SIZE;
   buf = "\0" * dwSize[0]
  else
   exit
  end
 end

 pObj = buf[buf[24,4].unpack('L')[0] .. -1]

 pCounterDef = pObj[pObj[8,4].unpack('L')[0] .. -1]
 numCounters = pObj[32,4].unpack('L')[0]

 for i in 0 .. numCounters
  counterNameTitleIndex = pCounterDef[4,4].unpack('L')[0]
  if counterNameTitleIndex == pididx
   pidcounter = pCounterDef[36,4].unpack('L')[0]
  end
  if counterNameTitleIndex == ppididx
   ppidcounter = pCounterDef[36,4].unpack('L')[0]
  end
  pCounterDef = pCounterDef[40..-1]
 end

 dwNumTasks = pObj[40,4].unpack('L')[0]

 pInst = pObj[pObj[4,4].unpack('L')[0] .. -1]

 for i in 0 .. dwNumTasks
  pCounter = pInst[pInst[0,4].unpack('L')[0] .. -1]
  pid = pCounter[pidcounter,4].unpack('L')[0]
  ppid = pCounter[ppidcounter,4].unpack('L')[0]

  if ppid>0
    if result[ppid] == nil
   result[ppid] = [pid]
    else
     result[ppid].push(pid)
    end
  end

  pInst = pCounter[pCounter[0,4].unpack('L')[0] .. -1]
 end

 RegCloseKey.Call( hKeyNames )
 RegCloseKey.Call( HKEY_PERFORMANCE_DATA )
 result

end


 puts 'Start: ' + `echo %TIME%`
 cmds = [
         "ping 10.0.0.0 -n 30 -w 1000 >NUL",
         "ping 10.0.0.0 -n 60 -w 1000 >NUL",
         "ping 10.0.0.0 -n 90 -w 1000 >NUL"
        ]

 out = []
 threads = []

 for c in cmds
     threads << Thread.new(c) { |myCmd|
         puts "#{myCmd}"
         f = IO.popen(myCmd)
    hProcess = OpenProcess.Call(0x00100001, 0 ,f.pid)
    Thread.current['pid'] = f.pid
    Thread.current['hProcess'] = hProcess
    while true
      a = WaitForSingleObject.Call( hProcess, 0 );
           break if a==0
         end
     }
 end

 puts threads.length.to_s + ' threads running'

 begin
     i = 0
     threads.each { |t| i += 1 if t.stop? }
     puts `echo %TIME%`
     b = File.exists?("C:junkj0.txt")
     puts i.to_s + ':' + File.mtime("C:junkj0.txt").to_s if $DEBUG and b
     $stdout.flush
 end until (i == threads.length) || (not b)

 pids = getpids

 puts 'Mid: ' + `echo %TIME%`
 threads.each { |t|
    if t.alive?
      pids[t['pid']].each {|pid|
TerminateProcess.Call(OpenProcess.Call(0x00100001, 0 ,pid),0) }
      TerminateProcess.Call(t['hProcess'],0)
    end

 }

 puts 'Stop: ' + `echo %TIME%`
 puts out if $DEBUG
#=================================================================


Park Heesob


In This Thread