我正在win7平台上用c++编写一个应用程序,需要关闭另一个应用程序。我使用的步骤是:
- 使用 EnumProcess() 枚举所有进程。
- 使用 OpenProcess() 打开一个进程句柄。访问权限为 PROCESS_ALL_ACCESS|PROCESS_VM_READ。
- 然后使用 EnumProcessModules() 枚举流程模块
- 我使用 GetModuleBaseName() 提取模块名称并将其与我拥有的进程名称进行比较。
- 当我找到匹配项时,我使用 TerminateProcess() 来终止该进程。
我面临的问题是这适用于 WindowsXP,但不适用于 Windows 7(64 位)。使用 getlasterror(),我得到错误为“拒绝访问”。我想这与访问权限有关。有什么办法可以在两个平台上做到这一点?还是有特定于win7的API?