用win32 api写一个通过进程名称获取进程路径并且返回的C语言代码 全程用ASCII
以下是通过进程名称获取进程路径并返回的C语言代码:
#include <windows.h>
#include <stdio.h>
void GetProcessPath(char* processName, char* processPath, int bufferSize)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshot == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot failed!\n");
return;
}
PROCESSENTRY32 processEntry;
processEntry.dwSize = sizeof(PROCESSENTRY32);
if (!Process32First(hSnapshot, &processEntry))
{
printf("Process32First failed!\n");
CloseHandle(hSnapshot);
return;
}
while (Process32Next(hSnapshot, &processEntry))
{
if (_stricmp(processEntry.szExeFile, processName) == 0)
{
strncpy(processPath, processEntry.szExeFile, bufferSize);
break;
}
}
CloseHandle(hSnapshot);
}
int main()
{
char processName[] = "notepad.exe";
char processPath[MAX_PATH];
GetProcessPath(processName, processPath, MAX_PATH);
printf("Process path is: %s\n", processPath);
return 0;
}
该代码使用了Windows API函数CreateToolhelp32Snapshot和Process32First/Process32Next来获取所有进程的信息,并通过比较进程名来获取目标进程的路径。函数GetProcessPath需要传入目标进程名、用于存储路径的缓冲区以及缓冲区大小。在该示例中,我们获取了notepad.exe进程的路径并将其打印到控制台。
原文地址: http://www.cveoy.top/t/topic/b335 著作权归作者所有。请勿转载和采集!