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

Nov*_*ber 3 windows winapi

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

Rob*_*edy 5

CreateToolhelp32SnapshotProcess32First/ Next将为您提供每个进程的进程ID.使用该ID OpenProcess来获取进程句柄,然后将该句柄传递给QueryFullProcessImageName(需要Windows Vista或更高版本).当您致电时OpenProcess,请求只PROCESS_QUERY_LIMITED_INFORMATION访问,您甚至应该能够访问提升权限进程.

  • 您可以尝试,但新API所需的权限标志也是新的,可能是新API存在的原因.`GetModuleFileNameEx`需要`PROCESS_VM_READ`,不允许为具有提升权限的进程获取进程.Process32First文档说使用Module32First来获取完整的进程名称,但同样,您可能会发现您没有足够的权限在某些进程上使用它.如果所有旧函数都已经有效,那么就不需要发明新的API函数. (3认同)