如何在9x下列举所有的进程(id,应用程序名)

ford 2001-08-29 10:29:37
...全文
62 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
111222 2001-08-29
  • 打赏
  • 举报
回复
http://www.csdn.net/develop/library/vc/Network/9538.shtm

<<第一部分:调用PSAPI函数枚举系统进程>>
<<第二部分:调用ToolHelp API枚举本地系统进程>>
<<第三部分:调用NTDLL.DLL中未公开API枚举本地系统进程>>
<<第四部分:从PDH中取得本地/远程系统进程信息>>

第二部分:

/**********************************************************************


Module:ps.c


说明:调用ToolHelp函数枚举本地系统进程名和ID,Only for 9x/2000


**********************************************************************/


#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
int main()
{
  HANDLE     hProcessSnap = NULL;
  PROCESSENTRY32 pe32   = {0};
  hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if (hProcessSnap == (HANDLE)-1)
  {
    printf("\nCreateToolhelp32Snapshot() failed:%d",GetLastError());
    return 1;
  }
  pe32.dwSize = sizeof(PROCESSENTRY32);
  printf("\nProcessName     ProcessID");
  if (Process32First(hProcessSnap, &pe32))
  {
    do
    {
/*根据进程ID打开进程句柄
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,TRUE,pe32.th32ProcessID);


挂起进程:
SuspendThread(hProcess);

唤醒进程:
ResumeThread(hProcess);

关闭进程:
DWORD dw;
GetExitCodeProcess(hProcess,&dw)
ExitProcess(dw);

*/

      printf("\n%-20s%d",pe32.szExeFile,pe32.th32ProcessID);
    }
    while (Process32Next(hProcessSnap, &pe32));
  }
  else
  {
    printf("\nProcess32Firstt() failed:%d",GetLastError());
  }
  CloseHandle (hProcessSnap);
return 0;
}

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧