下面的实例可以简便实现这个功能。#include#include 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。