通过遍历进程快照获取当前运行进程的PID(C代码)

本文介绍了如何在C语言中通过遍历进程快照获取当前进程的PID,以及在实现过程中遇到的问题,包括Wchar类型字符串输出和进程ID字段取错的解决方法。最后提到了直接调用API获取PID的简单方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次是要需要获取Cuckoo沙箱中当前运行的进程ID,就想了个办法==,直接写个程序,将进程ID打印出来后,Cuckoo沙箱运行结束后会上传运行截图,这样我就能知道当前我运行的进程ID是多少了,无可厚非,能解决问题就行。

写这篇文章是因为在写代码的时候遇到了一些问题,首先大脑里没有出现获取进程ID的WIN 32 API,只想到了通过遍历进程快照来获取,但是那几个API名字有点长(CreateToolhelp32Snapshot,Process32First,Process32Next,就问你长不长……),没有记住,于是就去搜了下,想看看是否存在这样直接获取进程ID的API,只是我没有记住罢了,但是搜索了一些却没有结果,没办法,只能用遍历进程快照的方法来获取当前运行进程的ID了,参考了优快云上的一篇文章中相关的代码,每次参考别人代码,总是运行后报错,得不到和博主同样的运行效果!这次当然也一样,改了下代码后(一波三折,必须承认代码这东西长时间不敲,就容易出错)总算是出现我想要的结果了-进程PID,我是通过判断进程名来打印我当前进程的PID,代码如下:

#include "stdafx.h"
#include <windows.h>
#include <TlHelp32.h>

int _tmain(int argc, _TCHAR* argv[])
{
	/************************************************************************/
	/* 功能:
	通过遍历进程快照获取当前进程PID
	/************************************************************************/
	HANDLE hProceessnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	if (hProceessnap == INVALID_HANDLE_VALUE)
	{
		printf_s("创建进行快照失败\n");
		return -1;
	}
	else
	{
		PROCESS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值