windows核心编程中PROCESSINFO例程的问题 - C++ Builder / Windows SDK/API
我自己编写了下ProcessInfo这个例程但有个问题,我发现我的程序在枚举进程列表中与资源管理器的进程列表相比少了两个进程是Taskmgr.exe 令个是System Idle p....,是进程本身问题还是我的程序有问题呢?
invokeProcess32First,@hProcessSnap,addr @stProc32
mov@dwTrue,eax
.while@dwTrue!=0
invokeProcess32Next,@hProcessSnap,addr @stProc32
mov@dwTrue,eax
.if@dwTrue!=0
invokewsprintf,addr @szProcBuffer,addr szControl,addr @stProc32.szExeFile,\
@stProc32.th32ProcessID
invokeSendDlgItemMessage,hWnd,IDC_COMBOX,CB_ADDSTRING,0,addr @szProcBuffer
mov@dwIndex,eax
invokeSendDlgItemMessage,hWnd,IDC_COMBOX,CB_SETITEMDATA,@dwIndex,\
@stProc32.th32ProcessID
.endif
.endw
我是汇编写的,这段代码就是循环枚举进程,然后如果枚举成功就添加组合框。谁知道解释下谢谢了!~~~~~~~~
[解决办法]
System Idle Process 不是一个真正的进程,是核心虚拟出来的,多任务操作系统都有的!在没有可用的进程时,系统处于空运行状态,此时就是System Idle Process 在运行!
Taskmgr.exe:你在枚举的时候是否已经开启了任务管理器?这个问题估计是你在枚举完后,才打开任务管理器的,导致你所说的两者枚举的进程不一样!