本文整理汇总了Python中_winapi.DUPLICATE_SAME_ACCESS属性的典型用法代码示例。如果您正苦于以下问题:Python _winapi.DUPLICATE_SAME_ACCESS属性的具体用法?Python _winapi.DUPLICATE_SAME_ACCESS怎么用?Python _winapi.DUPLICATE_SAME_ACCESS使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类_winapi
的用法示例。
在下文中一共展示了_winapi.DUPLICATE_SAME_ACCESS属性的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _make_inheritable
# 需要导入模块: import _winapi [as 别名]
# 或者: from _winapi import DUPLICATE_SAME_ACCESS [as 别名]
def _make_inheritable(self, handle):
"""Return a duplicate of handle, which is inheritable"""
h = _winapi.DuplicateHandle(
_winapi.GetCurrentProcess(), handle,
_winapi.GetCurrentProcess(), 0, 1,
_winapi.DUPLICATE_SAME_ACCESS)
return Handle(h)
示例2: make_inheritable_handle
# 需要导入模块: import _winapi [as 别名]
# 或者: from _winapi import DUPLICATE_SAME_ACCESS [as 别名]
def make_inheritable_handle(fd):
"""Create inheritable duplicate of handle from file descriptor"""
h = _winapi.DuplicateHandle(
_winapi.GetCurrentProcess(),
msvcrt.get_osfhandle(fd),
_winapi.GetCurrentProcess(), 0, 1,
_winapi.DUPLICATE_SAME_ACCESS
)
return subprocess.Handle(h)
示例3: duplicate
# 需要导入模块: import _winapi [as 别名]
# 或者: from _winapi import DUPLICATE_SAME_ACCESS [as 别名]
def duplicate(handle, target_process=None, inheritable=False):
'''Duplicate a handle. (target_process is a handle not a pid!)'''
if target_process is None:
target_process = _winapi.GetCurrentProcess()
return _winapi.DuplicateHandle(
_winapi.GetCurrentProcess(), handle, target_process,
0, inheritable, _winapi.DUPLICATE_SAME_ACCESS)
示例4: steal_handle
# 需要导入模块: import _winapi [as 别名]
# 或者: from _winapi import DUPLICATE_SAME_ACCESS [as 别名]
def steal_handle(source_pid, handle):
'''Steal a handle from process identified by source_pid.'''
source_process_handle = _winapi.OpenProcess(
_winapi.PROCESS_DUP_HANDLE, False, source_pid)
try:
return _winapi.DuplicateHandle(
source_process_handle, handle,
_winapi.GetCurrentProcess(), 0, False,
_winapi.DUPLICATE_SAME_ACCESS | _winapi.DUPLICATE_CLOSE_SOURCE)
finally:
_winapi.CloseHandle(source_process_handle)
示例5: send_handle
# 需要导入模块: import _winapi [as 别名]
# 或者: from _winapi import DUPLICATE_SAME_ACCESS [as 别名]
def send_handle(conn, handle, destination_pid):
'''Send a handle over a local connection.'''
dh = DupHandle(handle, _winapi.DUPLICATE_SAME_ACCESS, destination_pid)
conn.send(dh)
示例6: _make_inheritable
# 需要导入模块: import _winapi [as 别名]
# 或者: from _winapi import DUPLICATE_SAME_ACCESS [as 别名]
def _make_inheritable(self, handle):
"""Return a duplicate of handle, which is inheritable"""
h = _winapi.DuplicateHandle(
_winapi.GetCurrentProcess(), handle,
_winapi.GetCurrentProcess(), 0, 1,
_winapi.DUPLICATE_SAME_ACCESS)
# IronPython: Not closing this handle may cause read operations to block down the line.
# Because of the GC of .NET, it may not be closed fast enough so we force it to close.
# This is not an issue with CPython because the handle is closed via __del__.
if isinstance(handle, Handle): handle.Close()
return Handle(h)