关于VC 已知某进程的ID或名字怎样获取主线程的ID的搜索推荐

 我来答
bhtzu
推荐于2016-03-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4099万
展开全部

问题比较模糊。

关注函数:

NtQueryInformationProcess (
IN HANDLE ProcessHandle, // 进程句柄
IN PROCESSINFOCLASS InformationClass, // 信息类型
OUT PVOID ProcessInformation, // 缓冲指针
IN ULONG ProcessInformationLength, // 以字节为单位的缓冲大小
OUT PULONG ReturnLength OPTIONAL // 写入缓冲的字节数
);

通过这个函数可以获取进程信息,ProcessBasicInformation模式调用之后获取到的ProcessInformation结构体的InheritedFromUniqueProcessId成员,就是主进程ID。

    LONG                      status;  
    DWORD                     dwParentPID = 0;  
    HANDLE                    hProcess;  
    PROCESS_BASIC_INFORMATION pbi;  
  
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,dwId);  
    if(!hProcess)  
        return -1;  
  
    status = NtQueryInformationProcess(hProcess,SystemBasicInformation,(PVOID)&pbi,sizeof(PROCESS_BASIC_INFORMATION),NULL);  
    if(!status)  
        dwParentPID = pbi.InheritedFromUniqueProcessId;  
  
    CloseHandle (hProcess);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式