本文整理汇总了Python中win32api.OpenProcess方法的典型用法代码示例。如果您正苦于以下问题:Python win32api.OpenProcess方法的具体用法?Python win32api.OpenProcess怎么用?Python win32api.OpenProcess使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类win32api
的用法示例。
在下文中一共展示了win32api.OpenProcess方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_extra_privs
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def get_extra_privs():
# Try to give ourselves some extra privs (only works if we're admin):
# SeBackupPrivilege - so we can read anything
# SeDebugPrivilege - so we can find out about other processes (otherwise OpenProcess will fail for some)
# SeSecurityPrivilege - ??? what does this do?
# Problem: Vista+ support "Protected" processes, e.g. audiodg.exe. We can't see info about these.
# Interesting post on why Protected Process aren't really secure anyway: http://www.alex-ionescu.com/?p=34
th = win32security.OpenProcessToken(win32api.GetCurrentProcess(), win32con.TOKEN_ADJUST_PRIVILEGES | win32con.TOKEN_QUERY)
privs = win32security.GetTokenInformation(th, TokenPrivileges)
newprivs = []
for privtuple in privs:
if privtuple[0] == win32security.LookupPrivilegeValue(remote_server, "SeBackupPrivilege") or privtuple[0] == win32security.LookupPrivilegeValue(remote_server, "SeDebugPrivilege") or privtuple[0] == win32security.LookupPrivilegeValue(remote_server, "SeSecurityPrivilege"):
print "Added privilege " + str(privtuple[0])
# privtuple[1] = 2 # tuples are immutable. WHY?!
newprivs.append((privtuple[0], 2)) # SE_PRIVILEGE_ENABLED
else:
newprivs.append((privtuple[0], privtuple[1]))
# Adjust privs
privs = tuple(newprivs)
str(win32security.AdjustTokenPrivileges(th, False , privs))
示例2: _scan_for_self
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def _scan_for_self(self):
win32api.Sleep(2000) # sleep to give time for process to be seen in system table.
basename = self.cmdline.split()[0]
pids = win32process.EnumProcesses()
if not pids:
UserLog.warn("WindowsProcess", "no pids", pids)
for pid in pids:
try:
handle = win32api.OpenProcess(
win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_VM_READ,
pywintypes.FALSE, pid)
except pywintypes.error, err:
UserLog.warn("WindowsProcess", str(err))
continue
try:
modlist = win32process.EnumProcessModules(handle)
except pywintypes.error,err:
UserLog.warn("WindowsProcess",str(err))
continue
示例3: SvcDoRun
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def SvcDoRun(self):
import servicemanager
servicemanager.LogInfoMsg(self._svc_name_ + " Start Requested")
try:
hJob = win32job.CreateJobObject(None, "")
extended_info = win32job.QueryInformationJobObject(hJob, win32job.JobObjectExtendedLimitInformation)
extended_info['BasicLimitInformation']['LimitFlags'] = win32job.JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
win32job.SetInformationJobObject(hJob, win32job.JobObjectExtendedLimitInformation, extended_info)
command = "resilient-circuits.exe run " + self._resilient_args_
command_args = shlex.split(command)
self.process_handle = subprocess.Popen(command_args)
# Convert process id to process handle:
perms = win32con.PROCESS_TERMINATE | win32con.PROCESS_SET_QUOTA
hProcess = win32api.OpenProcess(perms, False, self.process_handle.pid)
win32job.AssignProcessToJobObject(hJob, hProcess)
except:
servicemanager.LogErrorMsg(self._svc_name_ + " failed to launch resilient-circuits.exe")
raise
servicemanager.LogInfoMsg(self._svc_name_ + " Started")
while self.isAlive:
if self.process_handle.poll() != None:
self.SvcStop()
win32api.SleepEx(10000, True)
示例4: closeApp
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def closeApp(self, hProcess, title):
"""
Close Application by window title
"""
try:
win32gui.EnumWindows(FileWriterLauncherGui.enumCallback, title)
if proc is not None:
win32event.WaitForSingleObject(hProcess, 5 * 1000)
win32api.CloseHandle(hProcess)
for pid in self.genChildProcesses(proc):
try:
handle = win32api.OpenProcess(1, False, pid)
win32process.TerminateProcess(handle, -1)
win32api.CloseHandle(handle)
except:
pass
except:
pass
示例5: get_pid_owner
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def get_pid_owner(self, fd, pid):
try:
proc = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION, False, pid)
token = win32security.OpenProcessToken(proc, win32con.TOKEN_QUERY)
user_sid, user_attr = win32security.GetTokenInformation(token,
win32security.TokenUser)
user = win32security.LookupAccountSid(None, user_sid)
return user_sid, user[0], user[1]
except win32api.error as e:
self.logEx("error",
"%s failed" % funcname,
("exception", e),
("function", e.funcname),
("error", "[%(winerror)d] %(strerror)s" % e),
None,
("process", pid),)
raise
示例6: killProcName
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def killProcName(procname):
# Change suggested by Dan Knierim, who found that this performed a
# "refresh", allowing us to kill processes created since this was run
# for the first time.
try:
win32pdhutil.GetPerformanceAttributes('Process','ID Process',procname)
except:
pass
pids = win32pdhutil.FindPerformanceAttributesByName(procname)
# If _my_ pid in there, remove it!
try:
pids.remove(win32api.GetCurrentProcessId())
except ValueError:
pass
if len(pids)==0:
result = "Can't find %s" % procname
elif len(pids)>1:
result = "Found too many %s's - pids=`%s`" % (procname,pids)
else:
handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0,pids[0])
win32api.TerminateProcess(handle,0)
win32api.CloseHandle(handle)
result = ""
return result
示例7: vmmap
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def vmmap(pid, is_64=True):
base = 0
if is_64:
mbi = MEMORY_BASIC_INFORMATION_64()
addr_type = wintypes.LARGE_INTEGER
else:
mbi = MEMORY_BASIC_INFORMATION_32()
addr_type = wintypes.DWORD
proc = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION, 0, pid)
maps = []
while windll.kernel32.VirtualQueryEx(proc.handle, addr_type(base), ctypes.byref(mbi), ctypes.sizeof(mbi)) > 0:
mapperm = 0
if mbi.Protect & win32con.PAGE_EXECUTE:
mapperm = SEG_PROT_X
elif mbi.Protect & win32con.PAGE_EXECUTE_READ:
mapperm = SEG_PROT_X | SEG_PROT_R
elif mbi.Protect & win32con.PAGE_EXECUTE_READWRITE:
mapperm = SEG_PROT_X | SEG_PROT_R | SEG_PROT_W
elif mbi.Protect & win32con.PAGE_EXECUTE_WRITECOPY:
mapperm = SEG_PROT_X | SEG_PROT_R
elif mbi.Protect & win32con.PAGE_NOACCESS:
mapperm = 0
elif mbi.Protect & win32con.PAGE_READONLY:
mapperm = SEG_PROT_R
elif mbi.Protect & win32con.PAGE_READWRITE:
mapperm = SEG_PROT_R | SEG_PROT_W
elif mbi.Protect & win32con.PAGE_WRITECOPY:
mapperm = SEG_PROT_R
#print hex(mbi.BaseAddress) +"\t"+ hex(mbi.BaseAddress + mbi.RegionSize) +"\t"+ hex(mapperm)
maps.append((mbi.BaseAddress, mbi.BaseAddress + mbi.RegionSize, mapperm, ""))
base += mbi.RegionSize
win32api.CloseHandle(proc)
return maps
示例8: kill
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def kill(pid, signal):
try:
OpenProcess(0, 0, pid)
except pywintypes.error as e:
if e.args[0] == ERROR_ACCESS_DENIED:
return
elif e.args[0] == ERROR_INVALID_PARAMETER:
raise OSError(errno.ESRCH, None)
raise
else:
raise RuntimeError("OpenProcess is required to fail.")
# For monkeypatching in tests
示例9: kill
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def kill(self):
handle = win32api.OpenProcess(
win32con.PROCESS_VM_READ | win32con.PROCESS_TERMINATE, pywintypes.FALSE, self.childpid)
win32process.TerminateProcess(handle, 3)
示例10: get_process_affinity
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def get_process_affinity(pid):
"""Return the affinity mask for the specified process."""
flags = win32con.PROCESS_QUERY_INFORMATION
handle = win32api.OpenProcess(flags, 0, pid)
return win32process.GetProcessAffinityMask(handle)[0]
示例11: set_process_affinity
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def set_process_affinity(pid, mask):
"""Set the affinity for process to mask."""
flags = win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_SET_INFORMATION
handle = win32api.OpenProcess(flags, 0, pid)
win32process.SetProcessAffinityMask(handle, mask)
示例12: GetProcessIdByName
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def GetProcessIdByName(procname):
"""
Try and get pid for a process by name.
"""
ourPid = -1
procname = procname.lower()
try:
ourPid = win32api.GetCurrentProcessId()
except:
pass
pids = win32process.EnumProcesses()
for pid in pids:
if ourPid == pid:
continue
try:
hPid = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_VM_READ, 0, pid)
try:
mids = win32process.EnumProcessModules(hPid)
for mid in mids:
name = str(win32process.GetModuleFileNameEx(hPid, mid))
if name.lower().find(procname) != -1:
return pid
finally:
win32api.CloseHandle(hPid)
except:
pass
return None
示例13: kill
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def kill(pid, signal):
try:
OpenProcess(0, 0, pid)
except pywintypes.error, e:
if e.args[0] == ERROR_ACCESS_DENIED:
return
elif e.args[0] == ERROR_INVALID_PARAMETER:
raise OSError(errno.ESRCH, None)
raise
示例14: GetProcessNameFromHwnd
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def GetProcessNameFromHwnd(self, hwnd):
'''Acquire the process name from the window handle for use in the log filename.
'''
threadpid, procpid = win32process.GetWindowThreadProcessId(hwnd)
# PROCESS_QUERY_INFORMATION (0x0400) or PROCESS_VM_READ (0x0010) or PROCESS_ALL_ACCESS (0x1F0FFF)
mypyproc = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, procpid)
procname = win32process.GetModuleFileNameEx(mypyproc, 0)
return procname
示例15: beNice
# 需要导入模块: import win32api [as 别名]
# 或者: from win32api import OpenProcess [as 别名]
def beNice(very_nice=False):
if very_nice:
value = BELOW_NORMAL_PRIORITY_CLASS
else:
value = IDLE_PRIORITY_CLASS
pid = GetCurrentProcessId()
handle = OpenProcess(PROCESS_ALL_ACCESS, True, pid)
SetPriorityClass(handle, value)