【问题标题】:Python pywin32 Access DeniedPython pywin32 访问被拒绝
【发布时间】:2011-12-17 09:06:07
【问题描述】:

所以,我正在尝试使用 pywin32 模块在 python 中编写一个简单的时间跟踪器。它在大多数情况下都可以正常工作,但在某些情况下会显示以下错误之一:

(5, 'OpenProcess', 'Access is Denied.')
(87, 'OpenProcess', 'The Parameter is incorrect.)'

这些问题通常发生在最小化窗口或运行游戏等全屏应用程序时。

以管理员身份运行脚本没有帮助。这就是我正在尝试的方式:

windowName = win32gui.GetForegroundWindow()
t, p = win32process.GetWindowThreadProcessId(windowName)
handle = win32api.OpenProcess(0x0410, False, p) 
windowPath = win32process.GetModuleFileNameEx(handle, 0)

有什么办法解决这个问题?

【问题讨论】:

  • 您确定返回的windowName, t, p 正确吗?检查 GetForegroundWindow 是否不返回 None。
  • (87, 'OpenProcess', 'The parameter is wrong.)' 错误是由 windowName 为 0 引起的。但是,另一个错误仍然存​​在。仅当我运行全屏游戏时才会出现这种情况。

标签: python windows pywin32


【解决方案1】:

首先你需要0x0410权限(PROCESS_VM_READ+PROCESS_QUERY_INFORMATION)吗?也许获得 PROCESS_QUERY_INFORMATION 或 PROCESS_QUERY_LIMITED_INFORMATION 足以满足您的需求?查看此 MSDN 页面以获取权限说明 http://msdn.microsoft.com/en-us/library/windows/desktop/ms684880(v=vs.85).aspx

如果仍然失败,您可以尝试使用 SeDebugPrivilege 为您的进程添加调试权限,并使用它们打开您想要的任何进程。查看这些链接了解更多信息:

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    相关资源
    最近更新 更多