以下是通过进程名称获取进程路径并返回的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进程的路径并将其打印到控制台。

用win32 api写一个通过进程名称获取进程路径并且返回的C语言代码 全程用ASCII

原文地址: http://www.cveoy.top/t/topic/b335 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录