我有一个 HANDLE 类型的变量。
第一个 HANDLE 变量是一个没有 PROCESS_QUERY_INFORMATION 访问权限的进程 HANDLE(名称为 hProcess)。
第二个变量也是一个进程句柄(名称为 hwndProcess),我已通过 OpenProcess 函数打开该进程句柄,并具有 PROCESS_QUERY_INFORMATION 访问权限。我确信两个进程应该具有相同的句柄。
但是当我如下比较它们时,它返回 false;
if (hProcess==hwndProcess) {做某事}
我该怎么做呢?
没有明确的方法来检查两个句柄是否引用同一进程。唯一的方法是查询进程信息并检查,例如使用GetProcessId
在每个句柄上检查进程 ID。
如果您没有必要的访问权限来调用所需的查询函数,那么您可以尝试调用DuplicateHandle
获得具有更多访问权限的新句柄。但是,如果失败,那么您将无法判断句柄是否属于同一进程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)