This package provides commands for show/kill process on Windows2000/XP. ps command can get some details such as %cpu, PPID, exe file path, memory etc...
BSD-Style License
http://reddog.s35.xrea.com/software/process1.0.zip
ps ?options? kill ?pid?
package require Process # Show Process List ps -exe -%cpu -%size ps -exe -ppid kill 1024 ...
proc plist {} { puts [format {%4s %-8s %6s %6s %5s %s} \ PID USER %CPU %MEM SIZE CMD] foreach {pid user pcpu pmem mem exe} \ [ps -user -%cpu -%size -size -exe -plainlist] { if {$pcpu < 0} {set pcpu 0} if {$pmem < 0} {set pmem 0} puts [format {%4d %-8s %6.1f%% %6.1f%% %5dKB %s} \ $pid $user $pcpu $pmem [expr $mem/1024] $exe] } } plist
PID USER %CPU %MEM SIZE CMD 0 0.0% 0.0% -1KB [System Process] 8 0.0% 0.0% 252KB System 156 SYSTEM 0.0% 0.1% 436KB SMSS.EXE 180 0.0% 0.0% -1KB CSRSS.EXE 176 SYSTEM 0.0% 0.7% 3728KB WINLOGON.EXE 228 SYSTEM 0.0% 1.0% 5368KB SERVICES.EXE 240 SYSTEM 0.0% 0.2% 1056KB LSASS.EXE 420 SYSTEM 0.0% 0.5% 2600KB svchost.exe 448 SYSTEM 0.0% 0.6% 3348KB spoolsv.exe 484 SYSTEM 0.0% 1.0% 5360KB svchost.exe 512 SYSTEM 0.0% 0.7% 3616KB mdm.exe 624 SYSTEM 0.0% 0.6% 3064KB NAVAPSVC.EXE ...
package require tablelist package require Process set lvar {} button .update -text Update -command { set lvar [ps -%cpu 500 -size -exe] catch {.table sortbycolumn [.table sortcolumn] -[.table sortorder]} update } scrollbar .y -command {.table yview} tablelist::tablelist .table -listvariable lvar \ -showarrow yes -yscrollcommand {.y set} \ -labelcommand tablelist::sortByColumn \ -columns {6 PID 10 %CPU 10 Memory 32 Name} -width 70 .table columnconfigure 0 -align right -sortmode integer .table columnconfigure 1 -align right -sortmode real -formatcommand formatPer .table columnconfigure 2 -align right -sortmode integer -formatcommand formatSize .table columnconfigure 3 -sortmode ascii pack .update -side bottom -fill x pack .table -side left -expand yes -fill both pack .y -side right -fill y proc formatPer {var} { if {$var < 0} { return {} } return "[format %3.2f $var] %" } proc formatSize {var} { if {$var < 0} { return {} } return "[expr $var / 1024] KB" }