windows 获取进程列表的几种方式

windows 获取进程列表的几种方式,第1张

CreateToolhelp32Snapshot法:

// //////////////////////////////////////////////////////////////////////////

// // CreateToolhelp32Snapshot 法            #include <Tlhelp32h>

// //////////////////////////////////////////////////////////////////////////

PROCESSENTRY32 pe32;

pe32dwSize = sizeof(PROCESSENTRY32);

BOOL bRet;

HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);

bRet = Process32First(hProcessSnap,&pe32);

while (bRet)

{

bRet = Process32Next(hProcessSnap,&pe32);

printf("%s\n",&pe32szExeFile);

}

return 0;

如果想输出文件路径,在其中加入提权代码后再OpenProcess,GetModuleFileNameEx即可。

EnumProcesses 法

//////////////////////////////////////////////////////////////////////////

// EnumProcesses 法      #include <Psapih>   #pragma comment(lib,"Psapilib")

//////////////////////////////////////////////////////////////////////////

DWORD PID[1024];

DWORD needed,NumProcess;

EnumProcesses(PID,sizeof(PID),&needed);

NumProcess = needed/sizeof(DWORD);

char FilePatch[MAX_PATH];

for (DWORD i=0;i<NumProcess;i++)

{

HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,PID[i]);

if (hProcess)

{

GetModuleFileNameEx(hProcess,NULL,FilePatch,sizeof(FilePatch));

printf("%s\n",FilePatch);

}

}

CloseHandle(hProcess);

printf("一共%d个进程\n",NumProcess);

return 0;

WTSOpenServer 法

//////////////////////////////////////////////////////////////////////////

// WTSOpenServer 法   #include <Wtsapi32h> #pragma comment(lib,"Wtsapi32lib")   用nbtstat -an获取本机NetBios名称,并在命令行下输入即可

//////////////////////////////////////////////////////////////////////////

char szServerName = argv[1];

PWTS_PROCESS_INFO wts;

DWORD dwCount;

HANDLE hWtsServer = WTSOpenServer(szServerName);

if(!WTSEnumerateProcesses(hWtsServer,0,1,&wts,&dwCount))

return 0;

for (DWORD i=0;i<dwCount;i++)

{

printf("%s\n",wts[i]pProcessName); 

}

return 0;

在Linux下,可以有两种比较方便的方法: 1 # pstree 通过系统的进程树来查看某个进程的父进程; 2 # ps -ef |grep 在显示的输出中,第三列就是该进程的父进程PID,然后可以再使用ps命令来查看父进程的名称 # ps -ef |grep 这应该就是你想要的

netstat -ano

这个命令肯定可以得,我建议你使用循环调用netstat -ano命令,写到一个文件中去。

或许是你发送完后才调用,那时候,此端口已经没有在发送数据了。

以上就是关于windows 获取进程列表的几种方式全部的内容,包括:windows 获取进程列表的几种方式、如何通过子进程号得到父进程号,不通ps、【Windows编程问题!!】C++根据端口号,获取对应的进程PID,但是有的端口怎么也找不到对应进程,WHY等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9630207.html

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

发表评论

登录后才能评论

评论列表(0条)

保存