win32api.DuplicateHandle 返回“5,'DuplicateHandle','访问被拒绝'”

问题描述

我正在尝试关闭来自另一个进程的单例事件句柄。 Process Explorer 做到了这一点,我也希望能够做到这一点。 我收到错误

(5,'DuplicateHandle','访问被拒绝。')

我是否传递了正确的参数? 编辑:

window = win32gui.FindWindow(None,"Game")
pid = win32process.GetwindowThreadProcessId(window)
print(pid)
Proc = win32api.OpenProcess(1,True,pid[1])
Singleton = win32event.CreateEvent(None,"singletonEvent")
dup_handle = win32api.DuplicateHandle(Proc,Singleton,win32api.GetCurrentProcess(),False,win32con.DUPLICATE_SAME_ACCESS)
dup_handle.Close()

Here is it's docs

解决方法

DuplicateHandledesiredAccess 参数不正确。这是MSDN:Example

dwDesiredAccess

为新句柄请求的访问权限。对于可以是的标志 为每个对象类型指定,请参阅以下备注部分。