【发布时间】:2011-01-15 17:43:49
【问题描述】:
我正在尝试枚举 所有 正在运行的进程 EXE 名称,并且在 XP Guest 帐户上尝试此操作时偶然发现。我可以使用 EnumProcesses 枚举所有进程 ID,但是当我尝试使用 PROCESS_QUERY_INFORMATION 或 PROCESS_VM_READ 的 OpenProcess 时,函数失败。
我在 XP Guest 帐户下启动了 Process Explorer,它能够枚举所有进程名称(尽管正如预期的那样,来自 Guest 用户空间之外的进程的大多数其他信息不存在)。
那么,我的问题是,如何复制 Process Explorer 的魔法来获取服务的进程名称以及在访客帐户用户空间之外运行的其他进程?
【问题讨论】:
-
嗯...对此知之甚少,但您确定 Process Explorer 以访客权限运行(因此与您的程序处于同一位置) - 也许它的“魔法”以管理方式运行即使它是由客人启动的,也享有权利。
-
GetLastError 告诉你什么?
-
是的,它肯定是作为来宾帐户进程运行的,具有与我的 IDE 相同的权限。
-
David,该函数返回“访问被拒绝”。错误。
标签: c++ windows winapi vb6 process