永发信息网

使用Process32Next逐个获取当前系统的所有进程名并保存到数组中时该怎样定义这个数组上下标呢?

答案:2  悬赏:0  手机版
解决时间 2021-03-19 08:45
想把当前获取到的所有进程名保存到一个数组中
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
If hProcessSnap <> INVALID_HANDLE_VALUE Then
udtProcessQueue.dwSize = Len(udtProcessQueue)
hNextProcess = Process32First(hProcessSnap, udtProcessQueue)
Do While hNextProcess
Debug.Print LCase(Left(udtProcessQueue.szExeFile, InStr(1&, udtProcessQueue.szExeFile, Chr(0&)) - 1&))
hNextProcess = Process32Next(hProcessSnap, udtProcessQueue)
lngProcessCount = lngProcessCount + 1&
Loop
CloseHandle hProcessSnap
End If

如以上代码所示,难道必须先第一遍Do While循环枚举到所有进程数后,用ReDim Preserve astrProcessList(lngProcessCount)修改动态数组的大小,最后再第二遍Do While循环枚举把所有进程名保存到astrProcessList数组中吗?请问还有没有什么更高效的方法呀?
最佳答案
对于这个问题,我平常的处理方法是:
第一种方法:
1、定义字符型变量S,在Do While枚举到每一个进程时,作一次累加:s=s & 进程名 & ","
2、全部进程枚举完毕,使用astrProcessList=split(s,",")一次性把字符串S转换为数组。
第二种方法:
1、声明:
Private Declare Function EnumProcesses Lib "PSAPI.DLL" (ByRef lpidProcess As Long, ByVal cb As Long, ByRef cbNeeded As Long) As Long
2、自定义函数:
Public Function GetProcesses() As Long
Dim lngCbNeeded As Long
Dim lngNumElements As Long, lngRet As Long
ReDim lngProcArr(1024)
lngRet = EnumProcesses(lngProcArr(0), 4 * 1024, lngCbNeeded)
lngNumElements = lngCbNeeded / 4
GetProcesses = lngNumElements - 1
End Function
3、获取进程总数时,调用如下:
dim i as integer
i=GetProcesses
redim astrProcessList(i-1)

经过上述处理后,你就可以在Do While枚举到每一个进程时,直接放入数组即可,而不必ReDim Preserve 。。。
全部回答
任务占坑
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请告诉我刘德华唱的几首歌的歌词
如家自助快餐怎么去啊,有知道地址的么
谜底是螃蟹的谜语
东北话格路是什么意思
小明粮油批发部怎么去啊,有知道地址的么
天上的星星好像并不是五角星形状的呀,为什么
2017年C一,驾驶证实习期。能不能扣分。如果
17款上海大众凌渡230,优惠2.7万,八个月库存
iCloud照片备份了,把本地文件删除,iCloud上
为什么农民不可以有自己的房屋所有权??而只
已知三角形ABC中,A坐标为(1,2),AB边和AC边上
拿口镇妇幼保健计划生育服务站我想知道这个在
狗狗生了孩子后尿尿那里吊着很大一坨红色的肉
男友说没房不结婚,但是我们买不起,房子真有
被投诉售假同意赔款了是不是就默认自己售假了
推荐资讯
唐山哪里有卖家居饰品 家居摆件
我是一个胖女孩 身高162 体重160斤。24岁了
中杨树湾地址在什么地方,想过去办事
保定市 开房去哪家宾馆好呢(干净卫生)本人
赵本山那么有钱,怎么还那么显老
凤凰国际娱乐会所我想知道这个在什么地方
车梯形螺纹有什么快速方法
桂枝便利店地址在哪,我要去那里办事
慎终追远什么意思
老年代步车(燃油四轮的)能不能上牌照
歌词:如果爱可以重来 难道我还能有所期待 这
黄晕的拼音是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?