我们从Python开源项目中,提取了以下10个代码示例,用于说明如何使用win32con.PROCESS_ALL_ACCESS。
def setpriority(pid=None,priority=1): """ Set The Priority of a Windows Process. Priority is a value between 0-5 where 2 is normal priority. Default sets the priority of the current python process but can take any valid process ID. """ import win32api,win32process,win32con priorityclasses = [win32process.IDLE_PRIORITY_CLASS, win32process.BELOW_NORMAL_PRIORITY_CLASS, win32process.NORMAL_PRIORITY_CLASS, win32process.ABOVE_NORMAL_PRIORITY_CLASS, win32process.HIGH_PRIORITY_CLASS, win32process.REALTIME_PRIORITY_CLASS] if pid == None: pid = win32api.GetCurrentProcessId() handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, True, pid) win32process.SetPriorityClass(handle, priorityclasses[priority])
def get_process_name(self, event): '''Acquire the process name from the window handle for use in the log filename. ''' if os.name == 'nt': hwnd = event.Window try: 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 except: # this happens frequently enough - when the last event caused the closure of the window or program # so we just return a nice string and don't worry about it. return "noprocname" elif os.name == 'posix': return to_unicode(event.WindowProcName)
def get_process_name(self, event): '''Acquire the process name from the window handle for use in the log filename. ''' if os.name == 'nt': hwnd = event.Window try: 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 except: # this happens frequently enough - when the last event caused the closure of the window or program # so we just return a nice string and don't worry about it. return "noprocname" elif os.name == 'posix': #this line was modified to get 64 bit working return str(event.WindowProcName)
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)
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
def _get_aimp_exe_path(self): """Find the AIMP executable path given its window handler. :raises RuntimeError: The AIMP executable path cannot be found. :rtype: None """ win_thread_proc_id = win32process.GetWindowThreadProcessId(self._aimp_window) pwnd = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, win_thread_proc_id[1]) self._aimp_exe_path = win32process.GetModuleFileNameEx(pwnd, None) if not self._aimp_exe_path: raise RuntimeError('Unable to retrieve the AIMP executable.')
def run(self): pythoncom.CoInitialize() self.drmwmi = wmi.WMI() while (True): for process in self.drmwmi.Win32_Process(): for selectedProcess in BadProcesses: try: if selectedProcess.lower() in process.Name.lower(): try: handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, process.ProcessId) filename = win32process.GetModuleFileNameEx(handle, 0) if os.path.isfile(filename) and not DEBUG_MODE: execute("taskkill", ("/F", "/IM", filename), True) time.sleep(random.randint(1, 4)) os.remove(filename) except Exception as e: pass process.Terminate() except Exception as e: pass time.sleep(random.randint(1, 10))
def _readListViewItems(hwnd, column_index=0): # Allocate virtual memory inside target process pid = ctypes.create_string_buffer(4) p_pid = ctypes.addressof(pid) GetWindowThreadProcessId(hwnd, p_pid) # process owning the given hwnd hProcHnd = OpenProcess(win32con.PROCESS_ALL_ACCESS, False, struct.unpack("i", pid)[0]) pLVI = VirtualAllocEx(hProcHnd, 0, 4096, win32con.MEM_RESERVE | win32con.MEM_COMMIT, win32con.PAGE_READWRITE) pBuffer = VirtualAllocEx(hProcHnd, 0, 4096, win32con.MEM_RESERVE | win32con.MEM_COMMIT, win32con.PAGE_READWRITE) # Prepare an LVITEM record and write it to target process memory lvitem_str = struct.pack('iiiiiiiii', *[0, 0, column_index, 0, 0, pBuffer, 4096, 0, 0]) lvitem_buffer = ctypes.create_string_buffer(lvitem_str) copied = ctypes.create_string_buffer(4) p_copied = ctypes.addressof(copied) WriteProcessMemory(hProcHnd, pLVI, ctypes.addressof(lvitem_buffer), ctypes.sizeof(lvitem_buffer), p_copied) # iterate items in the SysListView32 control num_items = win32gui.SendMessage(hwnd, commctrl.LVM_GETITEMCOUNT) item_texts = [] for item_index in range(num_items): win32gui.SendMessage(hwnd, commctrl.LVM_GETITEMTEXT, item_index, pLVI) target_buff = ctypes.create_string_buffer(4096) ReadProcessMemory(hProcHnd, pBuffer, ctypes.addressof(target_buff), 4096, p_copied) item_texts.append(target_buff.value) VirtualFreeEx(hProcHnd, pBuffer, 0, win32con.MEM_RELEASE) VirtualFreeEx(hProcHnd, pLVI, 0, win32con.MEM_RELEASE) win32api.CloseHandle(hProcHnd) return item_texts
def __init__(self, pid): handle = self.handle = ctypes.windll.kernel32.OpenProcess( READ_ACCESS, # win32con.PROCESS_ALL_ACCESS, False, pid) # Close the handle on GC so we do not leak handles. self._closer = weakref.ref(self, lambda x: CloseHandle(handle))
def check_pids(curmir_incs): """Check PIDs in curmir markers to make sure rdiff-backup not running""" pid_re = re.compile("^PID\s*([0-9]+)", re.I | re.M) def extract_pid(curmir_rp): """Return process ID from a current mirror marker, if any""" match = pid_re.search(curmir_rp.get_data()) if not match: return None else: return int(match.group(1)) def pid_running(pid): """True if we know if process with pid is currently running""" try: os.kill(pid, 0) except OSError, exc: if exc[0] == errno.ESRCH: return 0 else: log.Log("Warning: unable to check if PID %d still running" % (pid,), 2) except AttributeError: assert os.name == 'nt' import win32api, win32con, pywintypes process = None try: process = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, 0, pid) except pywintypes.error, error: if error[0] == 87: return 0 else: msg = "Warning: unable to check if PID %d still running" log.Log(msg % pid, 2) if process: win32api.CloseHandle(process) return 1 return 0 return 1 for curmir_rp in curmir_incs: assert Globals.local_connection is curmir_rp.conn pid = extract_pid(curmir_rp) if pid is not None and pid_running(pid): log.Log.FatalError( """It appears that a previous rdiff-backup session with process id %d is still running. If two different rdiff-backup processes write the same repository simultaneously, data corruption will probably result. To proceed with regress anyway, rerun rdiff-backup with the --force option.""" % (pid,))