首页
社区
课程
招聘
不打开进程,有什么办法可以获取到进程全路径???[已解决]
2012-11-8 20:47 4088

不打开进程,有什么办法可以获取到进程全路径???[已解决]

2012-11-8 20:47
4088
CreateToolhelp32Snapshot或者EnumProcess都需要用OpenProcess才能或得进程路径!!

有别的方法吗,求指点。。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 194
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mienboy 2012-11-8 21:36
2
0
搞定了。。。

BOOL GetProcessPath(LPCSTR strProcess, LPSTR strPath, int nPathSize)
{
        HANDLE hSnap = NULL;

        PROCESSENTRY32 pe32 = {0};
        MODULEENTRY32  me32 = {0};

        BOOL bRet = TRUE;

        DWORD pid = 0;

        int i = 0;

        int nLen = 0;

        pe32.dwSize = sizeof(pe32);
        me32.dwSize = sizeof(me32);

        hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

        if (hSnap == NULL)
        {
                bRet = FALSE;

                goto fun_end;
        }

        if (Process32First(hSnap, &pe32))
        {
                do
                {
                        if (stricmp(strProcess, pe32.szExeFile) == 0)
                        {
                                pid = pe32.th32ProcessID;

                                break;
                        }

                } while (Process32Next(hSnap, &pe32));
        }

        if (pid == 0)
        {
                bRet = FALSE;

                goto fun_end;
        }

        CloseHandle(hSnap);

        hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);

        if (hSnap == NULL)
        {
                bRet = FALSE;

                goto fun_end;
        }

        if (!Module32First(hSnap, &me32))
        {
                bRet = FALSE;

                goto fun_end;
        }

        ZeroMemory(strPath, nPathSize);

        strcpy(strPath, me32.szExePath);

        nLen = strlen(strPath);

        for (i = nLen; i > 0; i--)
        {
                if (strPath[i] == '\\')
                {
                        break;
                }

                strPath[i] = 0;
        }

fun_end:

        if (hSnap)
        {
                CloseHandle(hSnap);
        }

        return bRet;
}
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wrgg 2012-11-8 22:52
3
0
假如要获得该进程打开的文件的路径 怎么弄 比如 WINWORD.EXE中打开的word的路径?
雪    币: 442
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
benxue 2012-11-9 01:11
4
0
wmic process where name="WINWORD.EXE" get commandline
游客
登录 | 注册 方可回帖
返回