Page 1 of 4 1234>
Topic Options
#90295 - 2002-12-04 06:39 PM beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
I've been developing this script (rather slowly) for a while now and I thought it was time to solicit some feedback.

It uses WMI to monitor processes and report back some of the raw data in a nice little GUI. The look and feel is complete ripped off of Task Manager.

Anyway, I was just looking for some response on how useful this might be and what features or changes should be made.

Thanks...

Screen Shots:





Code:
Break On

;---------------------------------------------------------------------------
; Process Listing Form
;---------------------------------------------------------------------------
$frmProcesses = CreateObject("Kixtart.Form")
$frmProcesses.Size = 400,350
$frmProcesses.Text = "Process List"
$frmProcesses.FontName = "Veranda"

$lvwProcessList = $frmProcesses.ListView()
$lvwProcessList.Left = 5
$lvwProcessList.Top = 10
$lvwProcessList.Width = $frmProcesses.ClientWidth - 10
$lvwProcessList.Bottom = $frmProcesses.ClientHeight - 35
$lvwProcessList.FullRowSelect = True
$lvwProcessList.Sorted = 1

$nul = $lvwProcessList.Columns.Add("Process Name",130)
$nul = $lvwProcessList.Columns.Add("PID",54,1)
$nul = $lvwProcessList.Columns.Add("CPU Time",90,1)
$nul = $lvwProcessList.Columns.Add("Mem Usage",90,1)

$cboComputer = $frmProcesses.ComboBox(,20,30,200)
$cboComputer.Top = $lvwProcessList.Bottom + 5
$cboComputer.Left = 5
$cboComputer.Additem (@WKSTA)
$cboComputer.Value = "@WKSTA"
$cboComputer.Sorted = 1

$btnListProcesses = $frmProcesses.Button
$btnListProcesses.Text = "Refresh"
$btnListProcesses.Top = $lvwProcessList.Bottom + 5
$btnListProcesses.Left = $cboComputer.Right + 5
$btnListProcesses.Size = 60,25
$btnListProcesses.OnClick = "$$nul=fnGetProcessList($$cboComputer.Value)"
$btnListProcesses.ToolTip = "Refresh the process listing"

$btnMonProcess = $frmProcesses.Button
$btnMonProcess.Text = "Monitor"
$btnMonProcess.Top = $lvwProcessList.Bottom + 5
$btnMonProcess.Left = $btnListProcesses.Right + 5
$btnMonProcess.Size = 60,25
$btnMonProcess.OnClick = "$$nul=fnMonProcess()"
$btnMonProcess.ToolTip = "Monitor the currently selected process"

;---------------------------------------------------------------------------
; Process Monitor Form
;---------------------------------------------------------------------------
$frmProcess = CreateObject("Kixtart.Form")
$frmProcess.Size = 420,300
$frmProcess.Topmost = True
$frmProcess.Text = "Monitoring Process"
$frmProcess.FontName = "Veranda"
$frmProcess.MinButton = 1

$fraCPUUsage = $frmProcess.GroupBox
$fraCPUUsage.Size = 80,80
$fraCPUUsage.Text = "CPU Usage"
$fraCPUUsage.Top = 5
$fraCPUUsage.Left = 5

$picCPUUsage = $fraCPUUsage.PictureBox
$picCPUUsage.ScaleHeight = 51
$picCPUUsage.Width = 60
$picCPUUsage.BackColor = Black
$picCPUUsage.Top = 15
$picCPUUsage.Left = 10

$prgCPUUsage = $picCPUUsage.ProgressBar
$prgCPUUsage.Height = 30
$prgCPUUsage.Width = 30
$prgCPUUsage.Center
$prgCPUUsage.Top = 5
$prgCPUUsage.ForeColor = Lawngreen
$prgCPUUsage.BackColor = Black
$prgCPUUsage.BorderStyle = 1
$prgCPUUsage.Orientation = 1
$prgCPUUsage.Style = 1
$prgCPUUsage.Max = 100

$lblCPUUsage = $picCPUUsage.Label
$lblCPUUsage.Height = 15
$lblCPUUsage.Width = 28
$lblCPUUsage.Center
$lblCPUUsage.Top = $prgCPUUsage.Bottom
$lblCPUUsage.ForeColor = Lawngreen
$lblCPUUsage.BackColor = Black
$lblCPUUsage.BorderStyle = 1
$lblCPUUsage.Alignment = 1
$lblCPUUsage.Text = "%"
$lblCPUUsage.FontName = "Lucida Console"
$lblCPUUsage.FontSize = 8

$fraCPUHist = $frmProcess.GroupBox
$fraCPUHist.Size = 320,80
$fraCPUHist.Text = "CPU Usage History"
$fraCPUHist.Top = 5
$fraCPUHist.Left = $fraCPUUsage.Right + 5

$picCPUHist = $fraCPUHist.PictureBox
$picCPUHist.ScaleHeight = 51
$picCPUHist.ScaleWidth = 300
$picCPUHist.BackColor = Black
$picCPUHist.Top = 15
$picCPUHist.Left = 10

$fraMEMUsage = $frmProcess.GroupBox
$fraMEMUsage.Size = 80,80
$fraMEMUsage.Text = "MEM Usage"
$fraMEMUsage.Top = $fraCPUUsage.Bottom
$fraMEMUsage.Left = 5

$picMEMUsage = $fraMEMUsage.PictureBox
$picMEMUsage.ScaleHeight = 51
$picMEMUsage.Width = 60
$picMEMUsage.BackColor = Black
$picMEMUsage.Top = 15
$picMEMUsage.Left = 10

$prgMEMUsage = $picMEMUsage.ProgressBar
$prgMEMUsage.Height = 30
$prgMEMUsage.Width = 30
$prgMEMUsage.Center
$prgMEMUsage.Top = 5
$prgMEMUsage.ForeColor = Lawngreen
$prgMEMUsage.BackColor = Black
$prgMEMUsage.BorderStyle = 1
$prgMEMUsage.Orientation = 1
$prgMEMUsage.Style = 1
$prgMEMUsage.Max = 100

$lblMEMUsage = $picMEMUsage.Label
$lblMEMUsage.Height = 15
$lblMEMUsage.Width = 50
$lblMEMUsage.Center
$lblMEMUsage.Top = $prgMEMUsage.Bottom
$lblMEMUsage.ForeColor = Lawngreen
$lblMEMUsage.BackColor = Black
$lblMEMUsage.BorderStyle = 1
$lblMEMUsage.Alignment = 2
$lblMEMUsage.FontName = "Lucida Console"
$lblMEMUsage.FontSize = 8

$fraMEMHist = $frmProcess.GroupBox
$fraMEMHist.Size = 320,80
$fraMEMHist.Text = "MEM Usage History"
$fraMEMHist.Top = $fraCPUHist.Bottom
$fraMEMHist.Left = $fraMEMUsage.Right + 5

$picMEMHist = $fraMEMHist.PictureBox
$picMEMHist.ScaleHeight = 51
$picMEMHist.ScaleWidth = 300
$picMEMHist.BackColor = Black
$picMEMHist.Top = 15
$picMEMHist.Left = 10

$fraTotals = $frmProcess.GroupBox
$fraTotals.Size = 200,80
$fraTotals.Text = "Totals"
$fraTotals.Top = $fraMEMHist.Bottom
$fraTotals.Left = $fraMEMUsage.Left

$lblHandles = $fraTotals.Label
$lblHandles.Size = 80,15
$lblHandles.Top = 15
$lblHandles.Left = 10
$lblHandles.Text = "Handles"

$lblHandlesCount = $fraTotals.Label
$lblHandlesCount.Size = 80,15
$lblHandlesCount.Top = $lblHandles.Top
$lblHandlesCount.Left = $lblHandles.Right + 20
$lblHandlesCount.Alignment = 1

$lblThreads = $fraTotals.Label
$lblThreads.Size = 80,15
$lblThreads.Top = $lblHandles.Bottom
$lblThreads.Left = $lblHandles.Left
$lblThreads.Text = "Threads"

$lblThreadsCount = $fraTotals.Label
$lblThreadsCount.Size = 80,15
$lblThreadsCount.Top = $lblThreads.Top
$lblThreadsCount.Left = $lblThreads.Right + 20
$lblThreadsCount.Alignment = 1

$lblElapsedTime = $fraTotals.Label
$lblElapsedTime.Size = 80,15
$lblElapsedTime.Top = $lblThreads.Bottom
$lblElapsedTime.Left = $lblThreads.Left
$lblElapsedTime.Text = "Elapsed Time"

$lblElapsedTimeCount = $fraTotals.Label
$lblElapsedTimeCount.Size = 80,15
$lblElapsedTimeCount.Top = $lblElapsedTime.Top
$lblElapsedTimeCount.Left = $lblElapsedTime.Right + 20
$lblElapsedTimeCount.Alignment = 1

$fraOperations = $frmProcess.GroupBox
$fraOperations.Size = 200,80
$fraOperations.Text = "Data Operations"
$fraOperations.Top = $fraTotals.Top
$fraOperations.Left = $fraTotals.Right +5

$lblDataPerSec = $fraOperations.Label("Data Bytes/Sec",10,15,90,15)
$lblDataPerSecCount = $fraOperations.Label("",$lblDataPerSec.Right+20,$lblDataPerSec.Top,70,15)
$lblDataPerSecCount.Alignment = 1

$lblReadsPerSec = $fraOperations.Label("Read Bytes/Sec",10,$lblDataPerSec.Bottom,90,15)
$lblReadsPerSecCount = $fraOperations.Label("",$lblReadsPerSec.Right+20,$lblReadsPerSec.Top,70,15)
$lblReadsPerSecCount.Alignment = 1

$lblWritesPerSec = $fraOperations.Label("Write Bytes/Sec",10,$lblReadsPerSec.Bottom,90,15)
$lblWritesPerSecCount = $fraOperations.Label("",$lblWritesPerSec.Right+20,$lblWritesPerSec.Top,70,15)
$lblWritesPerSecCount.Alignment = 1

;---------------------------------------------------------------------------
; Start Application
;---------------------------------------------------------------------------
fnGetProcessList($cboComputer.Value)
$frmProcesses.Center
$frmProcesses.Show

While $frmProcesses.Visible
$nul=Execute($frmProcesses.DoEvents)
Loop

$objWMIService=""
Exit(1)

;---------------------------------------------------------------------------
; Functions
;---------------------------------------------------------------------------
Function fnGetProcessList(Optional $sComputer)
If $sComputer="" $sComputer = "." EndIf
$frmProcesses.Text = "Process List for "+$sComputer
$frmProcesses.MousePointer = 11
$lvwProcessList.Items.Clear
$lvwProcessList.BeginUpdate
$objWMIService = GetObject("winmgmts:\\"+$sComputer+"\root\cimv2")
If @ERROR $nul = $frmProcesses.MsgBox(@SERROR,"Error",16) $frmProcesses.MousePointer=0 Exit(1) EndIf
$colItems = $objWMIService.ExecQuery("Select * from Win32_Process",,48)
For each $objItem in $colItems
$Item=$lvwProcessList.Items.Add($objItem.Name)
$Item.SubItems(1).Text=$objItem.ProcessID
$Item.SubItems(2).Text=fnSecondsToHMMSS(CInt((CDbl($objItem.UserModeTime)
+CDbl($objItem.KernelModeTime))/10000000))
$Item.SubItems(3).Text=""+FormatNumber(CDbl($objItem.WorkingSetSize)/1024,0)+" K"
Next
$frmProcesses.MousePointer=0
$lvwProcessList.EndUpdate
EndFunction

Function fnMonProcess()
$frmProcesses.Hide
fnDrawGrid()
$frmProcess.Center
$frmProcess.Show

For Each $Item in $lvwProcessList.SelectedItems
$sProcess=$Item.SubItems(0).Text
$sPID=$Item.SubItems(1).Text
Next

$colItems = $objWMIService.ExecQuery("Select * from Win32_LogicalMemoryConfiguration",,48)
For each $objItem in $colItems
$lMEMMax=CDbl($objItem.TotalPageFileSpace)
;"TotalPhysicalMemory: " + $objItem.TotalPhysicalMemory
Next

$objProcess = $objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfProc_Process "
+'WHERE IDProcess = $sPID AND Name <> "_Total"',,48)
For Each $objItem in $objProcess
$frmProcess.Caption="Monitoring "+$sProcess+" (PID: "+$objItem.IDProcess+") on "
+$cboComputer.Value
Next

$prgCPUUsage.Refresh
$prgMEMUsage.Refresh
$tl=-6
:MonitorLoop
For $x = $tl to $picCPUHist.ScaleWidth step 5
$objProcess = $objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfProc_Process "
+'WHERE IDProcess = $sPID AND Name <> "_Total"',,48)
For Each $objItem in $objProcess
$sProcessName=$objItem.Name
$dP2=CDbl($objItem.PercentProcessorTime)
$dT2=CDbl($objItem.Timestamp_Sys100NS)
$prgMEMUsage.Value=Int(CDBL($objItem.WorkingSet)/1024/$lMEMMax*100)
$lblMEMUsage.Text=CDBL($objItem.WorkingSet)/1024
$lblHandlesCount.Text = $objItem.HandleCount
$lblThreadsCount.Text = $objItem.ThreadCount
$lblElapsedTimeCount.Text = fnSecondsToHMMSS(CInt((CDbl($objItem.Timestamp_Object)
-CDbl($objItem.ElapsedTime))/CDbl($objItem.Frequency_Object)))
$xDO2=CDbl($objItem.IODataBytesPerSec)
$xRO2=CDbl($objItem.IOReadBytesPerSec)
$xWO2=CDbl($objItem.IOWriteBytesPerSec)
$yDO2=CDbl($objItem.Timestamp_PerfTime)
Next
$lCPercent=Fix((($dP2-$dP1) / ($dT2-$dT1))*100)
If $lCPercent>100 $lCPercent=100 EndIf

$prgCPUUsage.Value = $lCPercent
$lblCPUUsage.Text = ""+$lCPercent+"%"
$yM2=50-$prgMEMUsage.Value/2
$yC2=50-$lCPercent/2

$picMEMHist.Line($x,$yM1,$x+5,$yM2)
$picCPUHist.Line($x,$yC1,$x+5,$yC2)
;Debug On
$lblDataPerSecCount.Caption = FormatNumber(Int(($xDO2-$xDO1)/(($yDO2-$yDO1)/3579545)),0)
$lblReadsPerSecCount.Caption = FormatNumber(Int(($xRO2-$xRO1)/(($yDO2-$yDO1)/3579545)),0)
$lblWritesPerSecCount.Caption = FormatNumber(Int(($xWO2-$xWO1)/(($yDO2-$yDO1)/3579545)),0)
;Debug Off

If Not $frmProcess.Visible or $sProcessName=''
$frmProcess.Hide $frmProcesses.Show fnGetProcessList($cboComputer.Value) Exit()
EndIf
$yM1=$yM2 $yC1=$yC2 $dP1=$dP2 $dT1=$dT2 $xDO1=$xDO2 $xRO1=$xRO2 $xWO1=$xWO2 $yDO1=$yDO2
$sProcessName=''
Sleep 0.5
Next
fnDrawGrid() $tl=0
Goto "MonitorLoop"
EndFunction

Function fnDrawGrid()
$picCPUHist.Clear
$picMEMHist.Clear
$picCPUHist.ForeColor = Green
$picMEMHist.ForeColor = Green
For $y=10 to $picCPUHist.ScaleHeight step 10
$picCPUHist.Line(0,$y,$picCPUHist.ScaleWidth,$y)
$picMEMHist.Line(0,$y,$picMEMHist.ScaleWidth,$y)
Next
For $x=-11 to $picCPUHist.ScaleWidth step 10
$picCPUHist.Line($x,0,$x,$picCPUHist.ScaleWidth)
$picMEMHist.Line($x,0,$x,$picMEMHist.ScaleWidth)
Next
$picCPUHist.ForeColor = Lawngreen
$picMEMHist.ForeColor = Lawngreen
EndFunction

Function fnSecondsToHMMSS($lSeconds)
If Not VarType($lSeconds)=3 $fnSecondsToHMMSS="Invalid VarType: "+VarType($lSeconds) Exit(1) EndIf
If $lSeconds < 0 $fnSecondsToHMMSS="Error" Exit(1) EndIf
Select
Case $lSeconds<60
If $lSeconds<10 $lSeconds="0"+$lSeconds EndIf
$fnSecondsToHMMSS="0:00:"+$lSeconds
Case $lSeconds<3600
$lMinutes=$lSeconds/60
$lSeconds=$lSeconds-$lMinutes*60
If $lMinutes<10 $lMinutes="0"+$lMinutes EndIf
If $lSeconds<10 $lSeconds="0"+$lSeconds EndIf
$fnSecondsToHMMSS="0:"+$lMinutes+":"+$lSeconds
Case 1
$lHours=$lSeconds/3600
$lSeconds=$lSeconds-$lHours*3600
$lMinutes=$lSeconds/60
$lSeconds=$lSeconds-$lMinutes*60
If $lMinutes<10 $lMinutes="0"+$lMinutes EndIf
If $lSeconds<10 $lSeconds="0"+$lSeconds EndIf
$fnSecondsToHMMSS=""+$lHours+":"+$lMinutes+":"+$lSeconds
EndSelect
EndFunction



Edited by Shawn (2006-01-24 10:46 PM)

Top
#90296 - 2002-12-04 07:57 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Sorry, I've been running this pretty much exclusively on W2K systems. I found a little glitch in the one of the data types when I ran it over the network on a XP machine. Edited code above.
Top
#90297 - 2002-12-04 09:01 PM Re: beta - KiXforms: ProcessMon
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
Man - thats a beautiful thing - your an ar-teest my friend.
Top
#90298 - 2002-12-04 09:16 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Well, thanks for supplying the canvas. I thought that doing something like this would be resource intensive, but it isn't. When it monitors it's own process you only see it use about 3% CPU every 4 seconds or so, then it goes back to 0%.

I used it to monitor a process over the WAN in Texas, an it responds pretty well. Heck, I even used it on someone over a dial-up and it worked OK, although the response was slowed down by .5 seconds or so.

Any ideas on improvements?

Top
#90299 - 2002-12-04 09:20 PM Re: beta - KiXforms: ProcessMon
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
Yes - I do have one or two thoughts - but I got one foot out the door at the office here - and thats after staying a little late so that I could scrounge an XP box & dl & checkout your script ... will be back in a couple of hours ... after I get whipped by the Wife ...

[edit]

anyone hear a "ka-chaa" sound ?

[ 04. December 2002, 21:21: Message edited by: Shawn ]

Top
#90300 - 2002-12-04 09:43 PM Re: beta - KiXforms: ProcessMon
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22346
Loc: OK
chris, any change to remove the cls?
_________________________
!

download KiXnet

Top
#90301 - 2002-12-04 09:58 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
The CLS is just in there while I develop the script. It won't be a permanent fixture.

As always, WKixers must remove the CLS to prevent the console window from appearing. [Wink]

Top
#90302 - 2002-12-04 10:00 PM Re: beta - KiXforms: ProcessMon
Lonkero Administrator Offline
KiX Master Guru
*****

Registered: 2001-06-05
Posts: 22346
Loc: OK
is there any way to determine which one is used?
like version macro which shows it?
haven't seen...
_________________________
!

download KiXnet

Top
#90303 - 2002-12-04 10:01 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
I don't think so. Actually, I think that would make a good item for the suggestion box. [Smile]
Top
#90304 - 2002-12-04 10:05 PM Re: beta - KiXforms: ProcessMon
Kdyer Offline
KiX Supporter
*****

Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
Chris,

Sweet code!

A thought.. When you are looking at Mem Usage, PID, etc... Can it change the sort order to show what processes are hogs?

{Edit}
Looks like just the PID and Mem Usage.
{/Edit}

Kent

[ 04. December 2002, 22:07: Message edited by: kdyer ]
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's

Top
#90305 - 2002-12-04 10:08 PM Re: beta - KiXforms: ProcessMon
krabourn Offline
Hey THIS is FUN
*****

Registered: 2000-12-11
Posts: 244
Loc: San Antonio, Texas, USA
Looks pretty good so far.

I would add a "Kill Process" button, just off the top of my head.

I also noticed that I can't monitor a single process on a NT 4 computer. The computers have WMI 1.5 installed.

$objProcess does not contain any info.

code:
$objProcess = $objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfProc_Process " 
+'WHERE IDProcess = $sPID AND Name <> "_Total"',,48)

Probably something to do with NT 4.

[ 04. December 2002, 22:10: Message edited by: krabourn ]
_________________________
Kelly

Top
#90306 - 2002-12-04 10:11 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Code edit. Had to squish another bug related to the IO Read/Write data types. The data types in WMI are uint64. There are slight differences in the way they're handled in W2K vs. XP. Anyway, I found it and fixed it. The 'Data Operations' should work now.

Kent, you can click the columns to sort them, but there is a 'bug' in the ListView column sort. All column items are string values, so they don't always sort correctly.

Top
#90307 - 2002-12-04 10:13 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
krabourn, you hit the nail on the head. The performance counter classes were added with W2K. I should do some error checking on that and provide the appropriate feedback.
Top
#90308 - 2002-12-04 10:25 PM Re: beta - KiXforms: ProcessMon
Kdyer Offline
KiX Supporter
*****

Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
Couple of more things..

Monitoring a Domain Controller(2k) on the same Domain - Flashes back to the process list
Monitoring a Domain Controller(2k) on a Child Domain - Works fine
Could not Monitor local machine (XP), but process list works fine.

Kent
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's

Top
#90309 - 2002-12-04 11:53 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Kent, was that using the currently posted script?
Top
#90310 - 2002-12-05 06:53 AM Re: beta - KiXforms: ProcessMon
Kdyer Offline
KiX Supporter
*****

Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
Yes.. at the time of the last post..

Have not tried any updates.

Kent
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's

Top
#90311 - 2002-12-05 04:47 PM Re: beta - KiXforms: ProcessMon
Kdyer Offline
KiX Supporter
*****

Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
ok..

Status.

Monitoring a Domain Controller(2k) on the same Domain - Flashes back to the process list
Monitoring a Domain Controller(2k) on a Child Domain - Works fine
Local machine (XP)works fine for both the Monitor and process list.

Kent

[ 05. December 2002, 16:47: Message edited by: kdyer ]
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's

Top
#90312 - 2002-12-05 09:00 PM Re: beta - KiXforms: ProcessMon
Jochen Administrator Offline
KiX Supporter
*****

Registered: 2000-03-17
Posts: 6380
Loc: Stuttgart, Germany
Chris,

I will definetly have a run with this .. tomorrow, when back to work [Big Grin]

Hmmm .. The Sort bug with listviews should have been gone in build 37 ... time for a release, eh Shawn ?
_________________________



Top
#90313 - 2002-12-05 09:03 PM Re: beta - KiXforms: ProcessMon
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
I'm using build 37. Still there. [Wink]
Top
#90314 - 2002-12-05 09:11 PM Re: beta - KiXforms: ProcessMon
Shawn Administrator Offline
Administrator
*****

Registered: 1999-08-13
Posts: 8611
Not too sure if its really a bug. ListView can
only sort on strings right now - Have yet to
implement the key and keytype properties for
numeric sorting.

[ps] And the sort routine is not Alignment aware
- so thats just another wrinkle. And after
running with Chris's tskmgr script - must be
sure to watch-out for numeric strings with
commas in them - not too sure how thats going to
play-out.

[ 05. December 2002, 21:14: Message edited by: Shawn ]

Top
Page 1 of 4 1234>


Moderator:  Shawn, ShaneEP, Ruud van Velsen, Arend_, Jochen, Radimus, Glenn Barnas, Allen, Mart 
Hop to:
Shout Box

Who's Online
1 registered (Allen) and 382 anonymous users online.
Newest Members
gespanntleuchten, DaveatAdvanced, Paulo_Alves, UsTaaa, xxJJxx
17864 Registered Users

Generated in 0.072 seconds in which 0.024 seconds were spent on a total of 13 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org