logo

Proces w Pythonie Win32

W tym artykule omówimy proces win32 w Pythonie. Omówimy także jego metody jeden po drugim.

Zasadniczo proces Win32 jest metodą w Pythonie. Za pośrednictwem tego modułu dostępne są rozszerzone możliwości tworzenia procesów Win32 i zarządzania nimi. Metoda Create tworzy obiekty procesu (konstruktor). Możliwe jest zabijanie, zawieszanie, wznawianie i ustawianie priorytetu procesów na obiektach za pomocą dodatkowych metod.

Instrumentacja zarządzania Windows (WMI; dawniej WBEM) i rozszerzenia WMI dla modelu sterowników systemu Windows stanowią podstawę zarządzania w systemach Windows 2019/2016/2012/2008 i Windows 10/7/XP (WDM).

Możliwość tworzenia procedur kontroli monitora w oparciu o WMI oferuje ActiveXperts Network Monitor. Istnieje ponad sto próbek WMI zebranych przez ActiveXperts. Przykłady te mogą służyć jako punkt wyjścia dla zupełnie nowych procedur sprawdzania, które tworzysz samodzielnie.

Na tej stronie dostępnych jest wiele przykładów WMI.

Monitor sieci ActiveXperts używa klasy WMI Win32_Process do monitorowania serwerów.

Seria zdarzeń w systemie operacyjnym Windows jest reprezentowana przez klasę WMI Win32_Process. Sekwencja obejmująca interakcję jednego lub większej liczby procesorów lub interpreterów, pewien kod wykonywalny i zestaw danych wejściowych, taki jak program kliencki działający w systemie Windows, jest potomkiem lub członkiem tej klasy.

Teraz pojawia się pytanie co to jest Python win32?

USA, ile miast

Zatem możliwości interfejsu programowania aplikacji (API) języka Python win32 i Win32 można używać w języku Python, korzystając z biblioteki rozszerzeń PyWin32 dla systemu Windows.

Zróbmy małe wprowadzenie do moduł win32api.

Moduł win32api oferuje różne dodatkowe metody kontrolowania procesów. Dają one możliwość wykonania wielu typowych kroków potrzebnych do uruchomienia nowych procesów, ale nadal nie zapewniają najwyższego poziomu kontroli niskiego poziomu.

W przeciwieństwie do funkcji os.system, która została wyjaśniona wcześniej, funkcja WinExec umożliwia różne dostosowania dla programów GUI. Na przykład nie została ustanowiona żadna konsola, a funkcja nie czeka na zakończenie nowego procesu.

Funkcja wymaga tych dwóch danych wejściowych:

  • Rozkaz do wykonania
  • Alternatywnie stan początkowy okna aplikacji

Zróbmy małe wprowadzenie do win32api.ShellExecute.

Ponadto moduł win32api oferuje kolejną korzystną funkcję uruchamiania nowych procesów. W przeciwieństwie do uruchamiania losowych procesów, głównym celem funkcji ShellExecute jest otwieranie dokumentów. Możesz na przykład poinstruować ShellExecute, aby „otwarł plik MyDocument.doc”. System Windows wybiera, który proces ma zostać uruchomiony w Twoim imieniu w celu otwarcia plików .doc. Kliknięcie (lub dwukrotne kliknięcie) pliku a.doc powoduje wykonanie tej samej akcji przez Eksploratora Windows.

Uruchamiany program nazywany jest procesem (przetworzonym). Proces nie musi być procesem uruchamianym ręcznie przez użytkownika; zamiast tego może to być proces systemowy uruchamiany przez system operacyjny. Każdy program działający w systemie operacyjnym musi najpierw wygenerować oddzielny proces, zanim będzie mógł zacząć działać. Większość procesów typowej instalacji systemu operacyjnego to programy działające w tle i usługi systemu operacyjnego, które służą do utrzymywania sprzętu, oprogramowania i systemu operacyjnego w dobrym stanie.

W tym poście przyjrzymy się kilku alternatywnym metodom Pythona umożliwiającym uzyskanie listy aktualnie aktywnych procesów systemu operacyjnego Windows.

Aby uzyskać pożądany wynik, najpierw opiszemy metodę Pythona. Następnie sprawdzimy polecenie z Procesora poleceń systemu Windows, aby osiągnąć to samo.

pip zainstaluj wmi

Skopiuj powyższy kod w terminalu.

Przykład

 #import wmi module import wmi # Initializise the wmi constructor f = wmi.WMI() # Print the header print(&apos;Printing the pid Process name&apos;) # all the running processes for process in f.Win32_Process(): print(f&apos;{process.ProcessId:<5} {process.name}') < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/python-tutorial/88/python-win32-process.webp" alt="Python Win32 Process"> <br> <img src="//techcodeview.com/img/python-tutorial/88/python-win32-process-2.webp" alt="Python Win32 Process"> <p>The WMI() function of the wmi library is first initialized. This enables us to access its internal functions, such as WMI.Win32_Service, WMI.Win32_Process, and WMI.Win32_Printjob, each of which is intended to carry out a certain duty. To obtain a list of the system&apos;s active processes, we would use the WMI.Win32_Process function. After that, we iterated through all the running processes and placed them in the variable process by calling the function WMI.Win32_Process(). The corresponding attributes were then used to derive the process&apos;s ProcessID (pid) and ProcessName (name). To add padding to the output and properly align it, we used F-strings for the output.</p> <p>Now let&apos;s go through different methods of module Win32process.</p> <h3>1. STARTUPINFO</h3> <p>In this method, we create a new STARTUPINFO object.</p> <p>Let&apos;s understand how to create this, which is given below:</p> <p>win32process.STARTUPINFO</p> <p>PySTARTUPINFO = STARTUPINFO()</p> <h3>2. beginthreadex</h3> <p>In this method, we create a new thread.</p> <p>Let&apos;s understand how to create this, which is given below:</p> <p>win32process.beginthreadex</p> <p>PyHANDLE, int = beginthreadex(sa, stackSize , entryPoint , args , flags )</p> <p>Let&apos;s understand its parameters is given below</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>sa:</td> PySECURITY_ATTRIBUTES(The security attributes, or None) </tr><tr><td>stackSize :</td> int (The new thread&apos;s stack size, or 0 for the default size.) </tr><tr><td>entryPoint :</td> function (It is a thread function) </tr><tr><td>args :</td> tuple </tr><tr><td>flags :</td> int </tr></ul> <p>CREATE_SUSPENDED is an option for delaying the start of a thread.</p> <p> <strong>The thread handle and thread ID are returned as a tuple as the outcome.</strong> </p> <h3>3. CreateProcess</h3> <p>win32process.CreateProcess PyHANDLE, PyHANDLE, int, int = CreateProcess(appName, commandLine , processAttributes , threadAttributes , bInheritHandles , dwCreationFlags , newEnvironment , currentDirectory , startupinfo ) establishes a new process and the main thread for it. The newly created process runs the designated executable file.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>appName:</td> string (executable module&apos;s name, or None) </tr><tr><td>Commandline:</td> string (command-line argument, or Nothing) </tr><tr><td>processAttributes:</td> PySECURITY_ATTRIBUTES (attributes of process security, or None) </tr><tr><td>threadAttributes:</td> PySECURITY_ATTRIBUTES (aspects of thread security, or None) </tr><tr><td>bInheritHandles:</td> int </tr><tr><td>dwCreationFlags:</td> int </tr></ul> <h3>4. CreateRemoteThread</h3> <p>win32process.CreateRemoteThread PyHANDLE, int = CreateRemoteThread(hprocess, sa , stackSize , entryPoint , Parameter , flags ) establishes a thread that executes in another process&apos;s virtual address space.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hprocess :</td> PyHANDLE (the remote process&apos;s handle) </tr><tr><td>sa :</td> PySECURITY_ATTRIBUTES (Security characteristics, or None) </tr><tr><td>stackSize :</td> int (The new thread&apos;s stack size, or 0 for the default size.) </tr><tr><td>entryPoint :</td> function (The address of the thread function.) </tr><tr><td>Parameter :</td> int (a void pointer that served as the argument given to the function) </tr><tr><td>flags :</td> int </tr></ul> <p>The thread handle and thread ID are returned as a tuple as the outcome.</p> <h3>5. CreateProcessAsUser</h3> <p>win32process.CreateProcessAsUser creates a new process with the provided user as its context.</p> <p>PyHANDLE, PyHANDLE, int, int = CreateProcessAsUser(hToken, appName , commandLine , processAttributes , threadAttributes , bInheritHandles , dwCreationFlags , newEnvironment , currentDirectory , startupinfo )</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hToken:</td> PyHANDLE (Handle to a token that indicates a user who is currently logged in) </tr><tr><td>appName:</td> string (executable module&apos;s name, or None) </tr><tr><td>commandLine:</td> string (command-line argument, or Nothing) </tr><tr><td>processAttributes:</td> PySECURITY_ATTRIBUTES (attributes of process security, or None) </tr><tr><td>threadAttributes:</td> PySECURITY_ATTRIBUTES (aspects of thread security, or None) </tr><tr><td>bInheritHandles:</td> int (the inheritance flag handle) </tr><tr><td>dwCreationFlags:</td> int (creating of flags) </tr><tr><td>newEnvironment:</td> None (A dictionary of stringor Unicode pair definitions to specify the process environment, or None to use the default environment.) </tr><tr><td>currentDirectory:</td> string (name of the current directory, or None) </tr><tr><td>startupinfo:</td> PySTARTUPINFO (a STARTUPINFO object that describes the appearance of the new process&apos;s main window.) </tr></ul> <p> <strong>Consequently, a tuple of (hProcess, hThread, dwProcessId, dwThreadId)</strong> </p> <h3>6. GetCurrentProcess</h3> <p>win32process.GetCurrentProcess obtains a fictitious handle for the active process.</p> <p>int = GetCurrentProcess()</p> <h3>7. GetCurrentProcessId</h3> <p>win32process.GetCurrentProcessId reveals the caller process&apos;s unique process identification.</p> <p>int = GetCurrentProcessId()</p> <h3>8. GetProcessVersion</h3> <p>win32process.GetProcessVersion reveals the system&apos;s main and minor version numbers, which are needed to conduct a specific process.</p> <p>int = GetProcessVersion(processId)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>processId:</td> int (a designation for the desired process.) </tr></ul> <h3>9. GetCurrentProcessId</h3> <p>win32process.GetCurrentProcessId reveals the caller process&apos;s unique process identification.</p> <p>int = GetCurrentProcessId()</p> <h3>10. GetStartupInfo</h3> <p>win32process.GetStartupInfo reveals the STARTUPINFO structure&apos;s contents, which were supplied when the caller process was established.</p> <p>PySTARTUPINFO = GetStartupInfo()</p> <h3>11. GetPriorityClass</h3> <p>win32process.GetPriorityClass</p> <p>int = GetPriorityClass(handle)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE (to the thread&apos;s handle) </tr></ul> <h3>12. GetExitCodeThread</h3> <p>win32process.GetExitCodeThread</p> <p>int = GetExitCodeThread(handle)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE (to the thread&apos;s handle) </tr></ul> <h3>13. GetExitCodeProcess</h3> <p>win32process.GetExitCodeProcess</p> <p>int = GetExitCodeProcess(handle)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE (to the thread&apos;s handle) </tr></ul> <h3>14. GetWindowThreadProcessId</h3> <p>win32process.GetWindowThreadProcessId returns the thread and process IDs that were responsible for the provided window&apos;s creation.</p> <p>int, int = GetWindowThreadProcessId(hwnd)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hwnd:</td> int (this parameter handles the window) </tr></ul> <p> <strong>Consequently, a tuple of (threadId, processId)</strong> </p> <h3>15. SetThreadPriority</h3> <p>win32process.SetThreadPriority</p> <p>SetThreadPriority(handle, nPriority)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE (This parameter handles the thread) </tr><tr><td>nPriority:</td> int (This parameter thread the priority level) </tr></ul> <h3>16. GetThreadPriority</h3> <p>win32process.GetThreadPriority</p> <p>int = GetThreadPriority(handle)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE (this parameter handles the threads) </tr></ul> <h3>17. GetProcessPriorityBoost</h3> <p>win32process.GetProcessPriorityBoost determines whether a process&apos;s dynamic priority adjustment is enabled.</p> <p>bool = GetProcessPriorityBoost(Process)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Process:</td> PyHANDLE (This parameter handles to a process) </tr></ul> <h3>18. SetProcessPriorityBoost</h3> <p>win32process.SetProcessPriorityBoost enables or disables a process&apos;s dynamic priority adjustment.</p> <p>SetProcessPriorityBoost(Process, DisablePriorityBoost)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Process:</td> PyHANDLE (This parameter handles a process) </tr><tr><td>DisablePriorityBoost:</td> boolean (This parameter indicates True to disable and False to enable) </tr></ul> <h3>19. GetThreadPriorityBoost</h3> <p>win32process.GetThreadPriorityBoost</p> <p>determines whether a thread&apos;s dynamic priority adjustment is enabled.</p> <p>bool = GetThreadPriorityBoost(Thread)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Thread:</td> PyHANDLE (This parameter handles to a thread) </tr></ul> <h3>20. SetThreadPriorityBoost</h3> <p>win32process.SetThreadPriorityBoost enables or disables a thread&apos;s dynamic priority adjustment.</p> <p>SetThreadPriorityBoost(Thread, DisablePriorityBoost)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Thread:</td> PyHANDLE (This parameter handles to a thread) </tr><tr><td>DisablePriorityBoost:</td> boolean ((This parameter indicates True to disable and False to enable) </tr></ul> <h3>21. GetThreadIOPendingFlag</h3> <p>win32process.GetThreadIOPendingFlag determines whether a thread has any open IO requests.</p> <p>bool = GetThreadIOPendingFlag(Thread)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Thread:</td> PyHANDLE (This parameter handles to a thread) </tr></ul> <h3>22. GetThreadTimes</h3> <p>win32process.GetThreadTimes</p> <p>It returns the time statistics for a thread.</p> <p>dict = GetThreadTimes(Thread)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Thread:</td> PyHANDLE (This parameter handles to a thread) </tr></ul> <h3>23. GetProcessId</h3> <p>int = GetProcessId(Process)</p> <p>It returns the Pid for a process handle.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Process:</td> PyHANDLE (This parameter handles to a thread) </tr></ul> <h3>24. SetPriorityClass</h3> <p>win32process.SetPriorityClass</p> <p>SetPriorityClass(handle, dwPriorityClass)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE (This parameter handles to the process) </tr><tr><td>dwPriorityClass:</td> int (This parameter gives priority class value) </tr></ul> <h3>25. AttachThreadInput</h3> <p>win32process.AttachThreadInput connects and disconnects the input of two threads.</p> <p>AttachThreadInput(idAttach, idAttachTo, Attach)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>idAttach:</td> int (This parameter shows id of a thread) </tr><tr><td>idAttachTo:</td> int (This parameter shows the id of the thread) </tr><tr><td>Attach:</td> bool (determines whether a thread should be joined or disconnected.) </tr></ul> <h3>26. SetThreadIdealProcessor</h3> <p>win32process.SetThreadIdealProcessor</p> <p> <strong>Syntax</strong> </p> <pre>win32process.SetThreadIdealProcessor( handle, dwIdealProcessor )</pre> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE ( handle to the thread of interest ) </tr><tr><td>dwIdealProcessor:</td> int ( ideal processor number ) </tr></ul> <p> <strong>Return type</strong> </p> <p>This method return the int value</p> <h3>27. GetProcessAffinityMask</h3> <p>win32process.GetProcessAffinityMask</p> <p> <strong>Syntax</strong> </p> <pre>win32process.GetProcessAffinityMask( hProcess )</pre> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( handle to the process of interest ) </tr></ul> <p> <strong>Return type</strong> </p> <p>This method returns a tuple of ( process affinity mask, system affinity mask ).</p> <h3>28. SetProcessAffinityMask</h3> <p>win32process.SetProcessAffinityMask</p> <p> <strong>Syntax</strong> </p> <pre>win32process.SetProcessAffinityMask( hProcess, mask )</pre> <p>Sets a processor affinity mask for a specified process.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( handle to the process of interest ) </tr><tr><td>mask:</td> int ( a processor affinity mask ) </tr></ul> <h4>Note: Some platforms do not have this feature.</h4> <h3>29. SetThreadAffinityMask</h3> <p>win32process.SetThreadAffinityMask</p> <p> <strong>Syntax</strong> </p> <pre>win32process.SetThreadAffinityMask( hThread, ThreadAffinityMask )</pre> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hThread:</td> PyHANDLE ( handle to the thread of interest ) </tr><tr><td>ThreadAffinityMask:</td> int ( a processor affinity mask ) </tr></ul> <p> <strong>Return type</strong> </p> <p>This method returns an int value.</p> <h3>30. SuspendThread</h3> <p>win32process.SuspendThread</p> <p> <strong>Syntax</strong> </p> <pre>int = SuspendThread( handle )</pre> <p>Suspends the specified thread.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE ( handle to the thread ) </tr></ul> <p> <strong>Return value</strong> </p> <p>The return value is the thread&apos;s previous suspend count</p> <h3>31. ResumeThread</h3> <p>win32process.ResumeThread</p> <p> <strong>Syntax</strong> </p> <pre>int = ResumeThread( handle )</pre> <p>Resumes the specified thread. When the suspend count is decremented to zero, the execution of the thread is resumed.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE ( handle to the thread ) </tr></ul> <p> <strong>Return value</strong> </p> <p>The return value is the thread&apos;s previous suspend count</p> <h3>32. TerminateProcess</h3> <p>win32process.TerminateProcess</p> <p> <strong>Syntax</strong> </p> <pre>TerminateProcess( handle, exitCode )</pre> <p> <strong>Parameters</strong> </p> <ul> <tr><td>handle:</td> PyHANDLE ( handle to the process ) </tr><tr><td>exitCode:</td> int ( The exit code for the process ) </tr></ul> <h3>33. xitProcess</h3> <p>win32process.ExitProcess</p> <ul> <tr><td>ExitProcess:</td> The process&apos;s end and all of its threads </tr></ul> <p> <strong>Parameters</strong> </p> <ul> <tr><td>exitCode:</td> int (Exit code information is provided for the process, and all threads that are terminated as a result of this call.) </tr></ul> <p>The best way to stop a process is with ExitProcess. A clean process shutdown is provided by this function. This includes contacting each associated dynamic-link library&apos;s (DLL) entry-point function with a value indicating that the process is separating from the DLL. The DLLs associated with the process are not informed of the process termination if a process terminates by invoking win32process::TerminateProcess.</p> <h3>34. EnumProcesses</h3> <p>win32process.EnumProcesses</p> <p> <strong>Syntax</strong> </p> <pre>( long,.... ) = EnumProcesses()</pre> <p>Provides Pids for activities that are actually running.</p> <h3>35. EnumProcessModules</h3> <p>win32process.EnumProcessModules</p> <p> <strong>Syntax</strong> </p> <pre>( long,.... ) = EnumProcessModules( hProcess )</pre> <p>Lists loaded modules for a process handle</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( Process handle as returned by OpenProcess ) </tr></ul> <h3>36. EnumProcessModulesEx</h3> <p>win32process.EnumProcessModulesEx</p> <p> <strong>Syntax</strong> </p> <pre>( long,.... ) = EnumProcessModulesEx( hProcess, FilterFlag )</pre> <p>lists the 32- or 64-bit modules that a process has loaded.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess :</td> PyHANDLE ( The process handle that OpenProcess returned ) FilterFlag=LIST_MODULES_DEFAULT : int ( choose whether to return 32-bit or 64-bit modules. ) needs Windows Vista or later. </tr></ul> <h3>37. GetModuleFileNameEx</h3> <p>win32process.GetModuleFileNameEx</p> <p> <strong>Syntax</strong> </p> <pre>PyUNICODE = GetModuleFileNameEx( hProcess, hModule )</pre> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( The process handle that OpenProcess returned ) </tr><tr><td>hModule:</td> PyHANDLE ( This parameter handles the modules ) </tr></ul> <h3>38. GetProcessMemoryInfo</h3> <p>win32process.GetProcessMemoryInfo</p> <p> <strong>Syntax</strong> </p> <pre>dict = GetProcessMemoryInfo( hProcess )</pre> <p>A dict representing a PROCESS_MEMORY_COUNTERS struct is returned as the process memory statistics.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( Process handle as returned by OpenProcess ) </tr></ul> <h3>39. GetProcessTimes</h3> <p>win32process.GetProcessTimes</p> <p> <strong>Syntax</strong> </p> <pre>dict = GetProcessTimes( hProcess )</pre> <p>Obtain time statistics for a process using its handle. (In 100 nanosecond units for UserTime and KernelTime)</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( Process handle as returned by OpenProcess ) </tr></ul> <h3>40. GetProcessIoCounters</h3> <p>win32process.GetProcessIoCounters</p> <p> <strong>Syntax</strong> </p> <pre>dict = GetProcessIoCounters( hProcess )</pre> <p>I/O statistics for a process are returned as a dictionary corresponding to an IO_COUNTERS struct.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( Process handle as returned by OpenProcess ) </tr></ul> <h3>41. GetProcessWindowStation</h3> <p>win32process.GetProcessWindowStation</p> <p> <strong>Syntax</strong> </p> <pre>GetProcessWindowStation()</pre> <p>Returns a handle to the window station for the calling process.</p> <h3>42. GetProcessWorkingSetSize</h3> <p>win32process.GetProcessWorkingSetSize</p> <p> <strong>Syntax</strong> </p> <pre>int,int = GetProcessWorkingSetSize( hProcess )</pre> <p>A process&apos;s minimum and maximum working set sizes are returned.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess:</td> PyHANDLE ( Process handle as returned by win32api::OpenProcess ) </tr></ul> <h3>43. SetProcessWorkingSetSize</h3> <p>win32process.SetProcessWorkingSetSize</p> <p> <strong>Syntax</strong> </p> <pre>SetProcessWorkingSetSize( hProcess, MinimumWorkingSetSize, MaximumWorkingSetSize )</pre> <p>Sets minimum and maximum working set sizes for a process.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>hProcess :</td> PyHANDLE ( Process handle as returned by OpenProcess ) </tr><tr><td>MinimumWorkingSetSize :</td> int ( Minimum number of bytes to keep in physical memory ) </tr><tr><td>MaximumWorkingSetSize :</td> int ( Maximum number of bytes to keep in physical memory ) </tr></ul> <h4>NOTE: To entirely swap out the procedure, set both min and max to -1.</h4> <h3>44. GetProcessShutdownParameters</h3> <p>win32process.GetProcessShutdownParameters</p> <p> <strong>Syntax</strong> </p> <pre>int,int = GetProcessShutdownParameters()</pre> <p>Reveals the process&apos;s current termination level and triggers.</p> <p>The range is 000-0FF. windows reserved, Last, 200-2FF Middle, First, 300-3FF, and Fourth, 400-4FF Windows reserves.</p> <h3>45. SetProcessShutdownParameters</h3> <p>win32process.SetProcessShutdownParameters</p> <p> <strong>Syntax</strong> </p> <pre>SetProcessShutdownParameters(Level, Flags)</pre> <p>Sets the process&apos;s flags and termination priority.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Level:</td> int (This parameter shows higher priority equals earlier) </tr><tr><td>Flags:</td> int (This parameter shows only SHUTDOWN NORETRY is valid at the moment). </tr></ul> <p>The range is 000-0FF. 100-1FF Last, 200-2FF Middle, 300-3FF First, 400-4FF, and reserved by windows window reserved.</p> <h3>46. GetGuiResources</h3> <p>win32process.GetGuiResources</p> <p> <strong>Syntax</strong> </p> <pre>int = GetGuiResources(Process, Flags )</pre> <p>Gives the amount of GDI or user object handles that a process is holding.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Process:</td> PyHANDLE (This parameter Win32api::OpenProcess&apos;s returned handle to a process) </tr><tr><td>Flags:</td> int (This parameter shows either GR USEROBJECTS or GR GDIOBJECTS (from win32con)) </tr></ul> <h3>47. IsWow64Process</h3> <p>win32process.IsWow64Process</p> <p> <strong>Syntax</strong> </p> <pre>bool = IsWow64Process(Process)</pre> <p>Identifies whether WOW64 is currently running the specified process.</p> <p> <strong>Parameters</strong> </p> <ul> <tr><td>Process=None:</td> PyHANDLE (Process handle returned by win32api::OpenProcess, win32api::GetCurrentProcess, etc.; if None (the default) is given, the current process handle will be used.) </tr></ul> <p>Let&apos;s see its Return Value.</p> <p>The return value is False if the operating system does not provide this function (ie,</p> <p>a NotImplemented exception will never be thrown). However, a</p> <p>win32process.error exception to this is normally thrown if the function is available</p> <p>but ineffective.</p> <h2>Conclusion</h2> <p>In this article, we have discussed Python win32 process. And also, we have discussed the different types of methods and their parameters and return values one by one.</p> <hr></5}>

Parametry

    uchwyt:PyHANDLE (uchwyt do interesującego wątku)dwIdealProcesor:int (idealny numer procesora)

Typ zwrotu

Ta metoda zwraca wartość int

27. GetProcessAffinityMask

win32process.GetProcessAffinityMask

Składnia

win32process.GetProcessAffinityMask( hProcess )

Parametry

    hProces:PyHANDLE (uchwyt do interesującego procesu)

Typ zwrotu

Ta metoda zwraca krotkę (maska ​​koligacji procesu, maska ​​koligacji systemu).

28. SetProcessAffinityMask

win32process.SetProcessAffinityMask

Składnia

win32process.SetProcessAffinityMask( hProcess, mask )

Ustawia maskę koligacji procesora dla określonego procesu.

Parametry

    hProces:PyHANDLE (uchwyt do interesującego procesu)maska:int (maska ​​powinowactwa procesora)

Uwaga: niektóre platformy nie mają tej funkcji.

29. UstawThreadAffinityMask

win32process.SetThreadAffinityMask

Składnia

win32process.SetThreadAffinityMask( hThread, ThreadAffinityMask )

Parametry

    hWątek:PyHANDLE (uchwyt do interesującego wątku)ThreadAffinityMaska:int (maska ​​powinowactwa procesora)

Typ zwrotu

Ta metoda zwraca wartość typu int.

30. Zawieś wątek

win32process.SuspendThread

enkapsulacja w Javie

Składnia

int = SuspendThread( handle )

Zawiesza określony wątek.

Parametry

    uchwyt:PyHANDLE (uchwyt do wątku)

Wartość zwracana

Wartość zwracana to liczba poprzednich zawieszeń wątku

31. Wznów wątek

win32process.ResumeThread

Składnia

int = ResumeThread( handle )

Wznawia określony wątek. Gdy liczba zawieszeń zostanie zmniejszona do zera, wykonywanie wątku zostanie wznowione.

Parametry

    uchwyt:PyHANDLE (uchwyt do wątku)

Wartość zwracana

Wartość zwracana to liczba poprzednich zawieszeń wątku

32. Zakończ proces

win32process.TerminateProcess

Składnia

TerminateProcess( handle, exitCode )

Parametry

    uchwyt:PyHANDLE (uchwyt do procesu)kod wyjścia:int (kod zakończenia procesu)

33. xitProces

win32process.WyjścieProces

    Proces wyjścia:Zakończenie procesu i wszystkich jego wątków

Parametry

    kod wyjścia:int (Informacje o kodzie zakończenia są dostarczane dla procesu i wszystkich wątków, które zostały zakończone w wyniku tego wywołania.)

Najlepszym sposobem na zatrzymanie procesu jest użycie ExitProcess. Funkcja ta zapewnia czyste zamknięcie procesu. Obejmuje to kontaktowanie się z każdą powiązaną funkcją punktu wejścia biblioteki dołączanej dynamicznie (DLL) z wartością wskazującą, że proces oddziela się od biblioteki DLL. Biblioteki DLL powiązane z procesem nie są informowane o zakończeniu procesu, jeśli proces kończy się przez wywołanie win32process::TerminateProcess.

34. Procesy wyliczeniowe

win32process.EnumProcesy

Składnia

( long,.... ) = EnumProcesses()

Zapewnia identyfikatory PID dla faktycznie uruchomionych działań.

35. Moduły EnumProcess

win32process.EnumProcessModules

Składnia

( long,.... ) = EnumProcessModules( hProcess )

Wyświetla listę załadowanych modułów dla uchwytu procesu

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez OpenProcess)

36. EnumProcessModulesEx

win32process.EnumProcessModulesEx

Składnia

wartość netto kat timpf
( long,.... ) = EnumProcessModulesEx( hProcess, FilterFlag )

wyświetla listę modułów 32- lub 64-bitowych załadowanych przez proces.

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez OpenProcess) FilterFlag=LIST_MODULES_DEFAULT: int (wybierz, czy zwracać moduły 32-bitowe czy 64-bitowe.) wymaga systemu Windows Vista lub nowszego.

37. GetModuleFileNameEx

win32process.GetModuleFileNameEx

Składnia

PyUNICODE = GetModuleFileNameEx( hProcess, hModule )

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez OpenProcess)hModuł:PyHANDLE (Ten parametr obsługuje moduły)

38. GetProcessMemoryInfo

win32process.GetProcessMemoryInfo

Składnia

dict = GetProcessMemoryInfo( hProcess )

Jako statystyka pamięci procesu zwracany jest słownik reprezentujący strukturę PROCESS_MEMORY_COUNTERS.

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez OpenProcess)

39. GetProcessTimes

win32process.GetProcessTimes

Składnia

dict = GetProcessTimes( hProcess )

Uzyskaj statystyki czasu dla procesu za pomocą jego uchwytu. (W jednostkach 100 nanosekund dla UserTime i KernelTime)

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez OpenProcess)

40. GetProcessIoCounters

win32process.GetProcessIoCounters

Składnia

dict = GetProcessIoCounters( hProcess )

Statystyki we/wy procesu są zwracane w postaci słownika odpowiadającego strukturze IO_COUNTERS.

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez OpenProcess)

41. GetProcessWindowStation

win32process.GetProcessWindowStation

Składnia

GetProcessWindowStation()

Zwraca uchwyt do stacji okiennej dla procesu wywołującego.

42. GetProcessWorkingSetSize

win32process.GetProcessWorkingSetSize

Składnia

int,int = GetProcessWorkingSetSize( hProcess )

Zwracane są minimalne i maksymalne rozmiary zestawu roboczego procesu.

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez win32api::OpenProcess)

43. SetProcessWorkingSetSize

win32process.SetProcessWorkingSetSize

Składnia

SetProcessWorkingSetSize( hProcess, MinimumWorkingSetSize, MaximumWorkingSetSize )

Ustawia minimalny i maksymalny rozmiar zestawu roboczego dla procesu.

Parametry

    hProces:PyHANDLE (uchwyt procesu zwrócony przez OpenProcess)Minimalny rozmiar zestawu roboczego:int (Minimalna liczba bajtów przechowywanych w pamięci fizycznej)Maksymalny rozmiar zestawu roboczego:int (Maksymalna liczba bajtów przechowywanych w pamięci fizycznej)

UWAGA: Aby całkowicie zamienić procedurę, ustaw wartość minimalną i maksymalną na -1.

44. Parametry GetProcessShutdown

win32process.GetProcessShutdownParametry

Składnia

int,int = GetProcessShutdownParameters()

Ujawnia bieżący poziom zakończenia procesu i wyzwalacze.

Zakres wynosi 000-0FF. Windows zarezerwowane, Last, 200-2FF Middle, First, 300-3FF i Fourth, 400-4FF Rezerwy Windows.

45. Ustaw parametry zamknięcia procesu

win32process.SetProcessShutdownParametry

Składnia

dla pętli basha
SetProcessShutdownParameters(Level, Flags)

Ustawia flagi procesu i priorytet zakończenia.

Parametry

    Poziom:int (ten parametr pokazuje wyższy priorytet równy wcześniej)Flagi:int (Ten parametr pokazuje, że w tej chwili obowiązuje tylko SHUTDOWN NORETRY).

Zakres wynosi 000-0FF. 100-1FF Last, 200-2FF Middle, 300-3FF First, 400-4FF i zarezerwowane przez okno Windows.

46. ​​GetGuiResources

win32process.GetGuiResources

Składnia

int = GetGuiResources(Process, Flags )

Podaje liczbę uchwytów GDI lub obiektów użytkownika przechowywanych przez proces.

Parametry

    Proces:PyHANDLE (ten parametr Win32api::OpenProcess zwraca uchwyt do procesu)Flagi:int (Ten parametr pokazuje GR USEROBJECTS lub GR GDIOBJECTS (z win32con))

47. Proces IsWow64

win32process.IsWow64Process

Składnia

bool = IsWow64Process(Process)

Określa, czy WOW64 aktualnie uruchamia określony proces.

Parametry

    Proces=Brak:PyHANDLE (Uchwyt procesu zwrócony przez win32api::OpenProcess, win32api::GetCurrentProcess itp.; jeśli podano Brak (wartość domyślna), zostanie użyty bieżący uchwyt procesu.)

Zobaczmy jego wartość zwracaną.

Wartość zwracana to False, jeśli system operacyjny nie udostępnia tej funkcji (tzn.

wyjątek NotImplemented nigdy nie zostanie zgłoszony). Jednakże, A

Wyjątek win32process.error jest zwykle zgłaszany, jeśli funkcja jest dostępna

ale nieskuteczne.

Wniosek

W tym artykule omówiliśmy proces win32 w Pythonie. Omówiliśmy także po kolei różne typy metod oraz ich parametry i zwracane wartości.