是否可以提取进程的路径,如果此进程是由管理员帐户从用户帐户执行的?如果您的用户帐户没有此进程的权限。 CreateToolhelp32Snapshot获取系统中所有进程的列表,不依赖于用户权限,但此快照仅包含.exe名称,不包含路径。
答案 0 :(得分:5)
CreateToolhelp32Snapshot
和Process32First
/ Next
会为您提供每个流程的流程ID。将该ID与OpenProcess
一起使用以获取进程句柄,然后将该句柄传递给QueryFullProcessImageName
(需要Windows Vista或更高版本)。当您致电OpenProcess
时,请求PROCESS_QUERY_LIMITED_INFORMATION
访问权限,您甚至可以访问提升权限流程。
答案 1 :(得分:0)
花费了大量时间来尝试处理权限。我认为,事实上 - 可以授予必要的权限来处理,使用户和管理员的流程互相看见并合作。但是,我没有找到使用这种方法的合适解决方案。
正是我需要的 - 同步在不同用户下运行的应用程序,我为我的案例找到了解决方案 - Global mutex!
当应用程序启动时,它会创建它自己的互斥锁并检查是否存在搜索其互斥锁的同步进程。