【问题标题】:win32api.DuplicateHandle returning "(5, 'DuplicateHandle', 'Access is denied.')"win32api.DuplicateHandle 返回“(5,'DuplicateHandle','访问被拒绝。')”
【发布时间】:2021-09-04 22:02:40
【问题描述】:

我正在尝试从另一个进程关闭单例事件句柄。 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, 0, 0, "singletonEvent")
dup_handle = win32api.DuplicateHandle(Proc, Singleton, win32api.GetCurrentProcess(), 0, False, win32con.DUPLICATE_SAME_ACCESS)
dup_handle.Close()

Here is it's docs

【问题讨论】:

    标签: python winapi process-explorer


    【解决方案1】:

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

    dwDesiredAccess

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

    【讨论】:

    • 我试过win32api.DuplicateHandle(Proc, Singleton, win32api.GetCurrentProcess(), 0, False, win32con.DUPLICATE_SAME_ACCESS)我仍然得到同样的错误。也许它的另一部分导致它这样做? (检查编辑)
    • 也许问题是hSourceProcessHandlehTargetProcessHandle 都需要PROCESS_DUP_HANDLE 访问权限。检查您的win32api.OpenProcess
    猜你喜欢
    • 2011-03-24
    • 2015-06-25
    • 1970-01-01
    • 2017-08-09
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多