如何获取正在运行的进程的路径,缺少用户的权限

时间:2012-03-05 16:16:12

标签: windows winapi

是否可以提取进程的路径,如果此进程是由管理员帐户从用户帐户执行的?如果您的用户帐户没有此进程的权限。 CreateToolhelp32Snapshot获取系统中所有进程的列表,不依赖于用户权限,但此快照仅包含.exe名称,不包含路径。

2 个答案:

答案 0 :(得分:5)

CreateToolhelp32SnapshotProcess32First / Next会为您提供每个流程的流程ID。将该ID与OpenProcess一起使用以获取进程句柄,然后将该句柄传递给QueryFullProcessImageName(需要Windows Vista或更高版本)。当您致电OpenProcess时,请求PROCESS_QUERY_LIMITED_INFORMATION访问权限,您甚至可以访问提升权限流程。

答案 1 :(得分:0)

花费了大量时间来尝试处理权限。我认为,事实上 - 可以授予必要的权限来处理,使用户和管理员的流程互相看见并合作。但是,我没有找到使用这种方法的合适解决方案。 正是我需要的 - 同步在不同用户下运行的应用程序,我为我的案例找到了解决方案 - Global mutex!
当应用程序启动时,它会创建它自己的互斥锁并检查是否存在搜索其互斥锁的同步进程。