下面的实例可以简便实现这个功能。
#include <stdio.h>
#include <windows.h>
int main()
{
char str[MAX_PATH];
GetModuleFileName(NULL, str, MAX_PATH);
puts(str);
return 0;
}
另外,想要枚举系统里面全部的进程,可以使用如下方式,关键是CreateToolhelp32Snapshot函数。
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);//set struct size;
//Give a fast shoot to the system all process;
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hProcessSnap==INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("CreateToolhelp32Snapshot FAIL!"));
return true;
}
//Interactor
BOOL bMore=::Process32First(hProcessSnap,&pe32);
while(bMore)
{
}
::CloseHandle(hProcessSnap);
获取进程的相关信息,可以通过ZwQuerySystemInformation。
转载于:https://blog.51cto.com/3994129/1595974