谁能给我解释一下TLIST

谁能给我解释一下TLIST,第1张

Tlist显示运行在本地或远程计算机上的所有任务的应用程序和服务列表,带有过程 ID (PID)。

语法

tlist[.exe] [/s computer] [/u domain\user [/p password]] [/fo {TABLE|LIST|CSV}] [/nh] [/fi FilterName [/fi FilterName2 [ ... ]]] [/m [ModuleName] | /svc | /v]

参数

/s Computer

指定远程计算机名称或 IP 地址(不能使用反斜杠)。默认值是本地计算机。

/u Domain\User

运行具有由 User 或 Domain\User.指定用户的帐户权限命令。默认值是当前登录发布命令的计算机的用户权限。枯迹

/p Password

指定用户帐户的密码,该用户帐户在 /u 参数中指定。

/fo {TABLE|LIST|CSV}

指定输出所用的格式。有效值为 TABLE、LIST 和 CSV。输出的默认格式为 TABLE。

/nh

取消输出结果中的列标题。当 /fo 参数设置为 TABLE 或 CSV 时有效。

/fi FilterName

指定该查询包括或不包括的过程类型。下表列出了有效的筛选器名称、运算符和值。 名称 运算符 值

状态 eq, ne RUNNING|NOT RESPONDING

Imagename eq, ne 任何有效字符串。

PID eq, ne, gt, lt, ge, le 任何有效的正整数。

会话 eq, ne, gt, lt, ge, le 任何有效的会话数。

SessionName eq, ne 任何有效字符串。

CPUTime eq, ne, gt, lt, ge, le hh:mm:ss 格式的有效时间。mm 参数和 ss 参数应在 0 到 59 之间,hh 参数可以是任何一个有效的无符号的数值。

Memusage eq, ne, gt, lt, ge, le 任何有效的整数。

用户名 eq, ne 任何有效的用户名 ([Domain\]User)。

服务 eq, ne 任何有效字符串。

Windowtitle eq, ne 任何有效字符串。

Modules eq, ne 任何有效字符告陵串。

/m [ModuleName]

指定显示每个过程的模块信息。指定模块时,将显示使用此模块的所有过程。没有指定模块时,将显示所有模块的所有过程。不能与 /svc 或 /v 参数一起使用。

/svc

无间断地列出每个过程的所有服务信息。当 /fo 参数设置为 TABLE 时有效。不能与 /m 或 /v 参数一起使用。

/v

指定显示在输出结果中的详细任务信息。不能与 /袜败戚svc 或 /m 参数一起使用。

/?

在命令提示符显示帮助。

您好,BCB的TList类说明

TList包含对象指针列表。

类关系 TObject

Tlist用于存储和维护对象列表。TList引入属隆和方法以执行以下 *** 作:

(1)在列表中增加或删除对象。

(2)在列表中重排对象。

(3)在列表中定位和获得对象。

(4)在列表中对对象进行排序。

属性列表

Capacity 标识TList对象维护的指针数组的大小。

Count 表明在列表中使用的项的数量。

Items 列出对象的引用。

List 标识组成Items的指针数组

方法列表

~TList 删除与TList对象有关的内存。

Add 在列表的末尾插入有关的内存。

Clear 从列表中删除所有项。

Delete 删除Index参数标识的项。

Error 产生EListError异常。

Exchange 交换Items数组中两项的位置。

Expand 增加列表的Capacity。

First 返回Items[0]。

IndexOf 返回Items数组中一指针的索引。

Insert 增加一对象至Items数组中。

Last 返回Items[Count-1]。

Move 在Items数组中改变某一项的位置。

Pack 从Items数组中删除所有的零项。

Remove 从Items数组中删除Items参数的第一个引用。

Sort 在列表中执行QuickSort。

TList 创建一个新的TList对象。

详细说明

属性

TList::Capacity

__property int Capacity = {read=FCapacity,write=SetCapacity,nodefault}

标识TList对象维护的指针数组的大小。

设置Capacity为列表将要包含的指旬数。当当设置Capacity属性时,如果没有足够的内存扩展列表为它的新的大小,将产生EOutOfMemory异常。

在没有重新分配内存情况下,读取Capacity可得到列表能包含的对象数。注意不要混淆Capacity和Count属性;Count属性为列表中使用的项的数中乎量。Capacity值总是大于或等于Count值。当Capacity大于Count,通过设定Capacity至Count可以回收未使用的内存。当添加一对象至列表,而此列表已被填充到Capacity时,Capacity属性自动增加。在增加对象之前设置Capacity能返培纯减少内存重分配的数量,因此提高了执行效果。例如:

List->Clear()

List->Capacity = Count

for(int i=0i<Counti++) List->add(...)

在for循环之前分配Capacity保证在随后的每一Add *** 作不重新分配列表。在调用Add时避免重新分配可以提高执行效果并且保证Add *** 作不产生异常。

TList:Count

__property int Count = {read=FCount,write=SetCount,nodefault}

表明在列表中使用的项的数量。

读取Count可以确定Items数组中项的数量。增加Count的大小将在Items数组的末尾增加必要的零指针的数量;减小Count的大小将从Items数组的末尾删除必要的零指针的数量。

注意:Count并不总等同于列表中引用的对象的数量。在Items数组中,某些项将包含零指针。如果要删除零指针并且设置Count为对象引用的项数,则可以调用Pack方法。

TList::Items

__property void* Items[int Index] = {read=Get,write=Put}

列出对象的引用。

使用Items可以获得数组中指定对象的指针。Index参数标识对象的索引;第一个对象的索引值为0,第二个对象的索引值为1,以此类推。设置Items可以在指定位置改变引用。漏咐使用带有Count属性的Items可以遍历列表中的所有对象。

应该注意的是,并不是Items数组中所有的项都需包含对象的索引。有些项可能是零指针。如果要删除零掼针并且减小Items数组的大小至对象的数量,可以调用Pack方法。

TList::List

typedef void* TPointerLIst[134217727]

typedef TPointerLIst* PPointerList

__property PPointerList List = {read=FList}

标识组成Items的指针数组。

使用List直接获得Items数组。

TList::~TList

__fastcall virtual~TList(void)

删除与TList对象有关的内存。

在应用中不要直接调用~TList。用delete替代。

~TList释放存储项列表的内存。注意,~TList并不释放指向列表元素的内存。

TList::Add

int __fastcall Ad(void* Item)

在列表的末尾插入新项,可以调用Add方法。Add方法返回值为新项的索引值;列表中第一项的索引值为0

如果Items数组使用完列表对象Capacity,则Add方法分配更多的内存。Add增加Count值以反映新指针的增加。注意:即使Items数组包含零指针,Add方法总是在Items数组的末尾插入Items指针。

TList::Clear

DYNAMIC void __fastcall Clear(void)

从列表中删除所有项。

如果要清空Items数组并且设置Count为0,可以调用Clear方法。Clear方法同时释放用于存储Items数组的内存并且设置Capacity为0。

// 本文转自 C++Builder研究 - i=333&d=i653m1

TList::Delete

void __fastcall Delete(int Index)

删除Index参数标识的项。

如果要从列表指定位置删除项,可以调用Delete方法。索引从零开始,因此第一项的索引值为0,第二项的索引值为1,以此类推。调用Delete方法向前移动删除项之后的所有英并减小Count。

如果要删除一项的索引但并不从列表中删除该项并且改变Count,可设置Index的Items属性为零。注意Delete并不释放的项相关的内存。如果要释放存储删除项的内存,可设置Capacity属性。

TList::Error

virtual void __fastcall Error(const System::AnsiString Msg,int Data)  {Error(__classid(TList),Msg,Data}

产生EListError异常。

当TList对象出现错误时,调用Error产生异常。Error组合Msg参数标识的错误消息和Data参数标识的数据植,然后产生EListError异常。调用Error而不是增加一行程序代码。

既然辩迹碧定义了nodelist:TList<NodeMsg>

那nodemsg的类型携举应该是NodeMsg才对,可是程序里却定义了nodemsg:PNodeMsg

根据命名习惯推测这应该是个指针,所以后面程序州备段中会出现覆盖值的现象,因为你每次加入到nodelist中的都是同一个指针地址。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12340378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存