所以,我正在尝试使用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)
有什么方法可以解决这个问题吗?
答案 0 :(得分: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为您的进程添加调试权限,并且使用它们应该打开您想要的任何进程。请查看这些链接以获取更多信息: