logo

תהליך Python Win32

במאמר זה, נדון בתהליך Python win32. וכן נדון בשיטותיו אחת לאחת.

בעיקרון, תהליך Win32 הוא שיטה בפייתון. יכולות יצירה וניהול מורחבות של Win32 נגישות דרך מודול זה. שיטת היצירה יוצרת אובייקטי תהליך (הקונסטרוקטור). ניתן להרוג, להשעות, לחדש ולהגדיר את העדיפות של תהליכים על אובייקטים באמצעות שיטות נוספות.

Windows Management Instrumentation (WMI; לשעבר WBEM) והרחבות WMI עבור דגם Windows Driver משמשות כבסיס לניהול ב-Windows 2019/2016/2012/2008 ו-Windows 10/7/XP (WDM).

היכולת ליצור נהלי בדיקת צג המבוססים על WMI מוצעת על ידי ActiveXperts Network Monitor. יש יותר ממאה דוגמאות של WMI ש-ActiveXperts אספה. דוגמאות אלה עשויות לשמש נקודת התחלה לשגרות בדיקה חדשות לגמרי שאתה יוצר בעצמך.

דוגמאות רבות של WMI זמינות באתר זה.

ActiveXperts Network Monitor משתמש במחלקת Win32_Process WMI כדי לנטר את השרתים שלך.

סדרה של אירועים במערכת הפעלה Windows מיוצגת על ידי מחלקת Win32_Process WMI. רצף הכולל אינטראקציה של מעבד או מתורגמן אחד או יותר, קוד הפעלה כלשהו וקבוצת קלט, כגון תוכנית לקוח הפועלת על מערכת Windows, הוא צאצא או חבר במחלקה זו.

כעת עולה השאלה מה זה Python win32?

כך שניתן להשתמש ביכולות של Python win32 ו-Win32 של ממשק תכנות יישומים (API) עם Python על ידי שימוש בספריית ההרחבות PyWin32 עבור Windows.

בואו ניקח הקדמה קטנה ל מודול win32api.

מודול win32api מציע שיטות נוספות שונות לשליטה בתהליכים. אלה נותנים לך את היכולת לבצע רבים מהצעדים הרגילים הדרושים כדי להשיק תהליכים חדשים, אך הם עדיין אינם מספקים את הרמה הגבוהה ביותר של שליטה ברמה נמוכה.

בניגוד לפונקציית os.system, שהוסברה בעבר, הפונקציה WinExec עושה התאמות שונות לתוכניות GUI. לדוגמה, לא הוקמה קונסולה, והפונקציה לא ממתינה עד לסיום התהליך החדש.

הפונקציה דורשת שתי כניסות אלה:

  • הפקודה לביצוע
  • לחלופין, המצב ההתחלתי של חלון היישום

בואו ניקח הקדמה קטנה ל win32api.ShellExecute.

בנוסף, מודול win32api מציע תכונה מועילה נוספת להתחלת תהליכים חדשים. בניגוד להתחלת תהליכים אקראיים, פתיחת מסמכים היא המטרה העיקרית של הפונקציה ShellExecute. אתה יכול להורות ל-ShellExecute 'לפתוח את MyDocument.doc', למשל. Windows בוחר איזה תהליך להפעיל בשמך כדי לפתוח קבצי.doc. לחיצה (או לחיצה כפולה) על קובץ a.doc גורמת לסייר Windows לבצע את אותה פעולה.

תוכנית המופעלת מכונה תהליך (מעובד). תהליך לא חייב להיות תהליך שהמשתמש מריץ באופן ידני; במקום זאת, זה יכול להיות תהליך מערכת שמערכת ההפעלה מולידה. כל תוכנית שפועלת על מערכת הפעלה חייבת ליצור תחילה תהליך נפרד לפני שהיא יכולה להתחיל לפעול. רוב התהליכים בהתקנת מערכת הפעלה טיפוסית הם תוכניות רקע ושירותי מערכת הפעלה המשמשים כדי לשמור על החומרה, התוכנה ומערכת ההפעלה במצב תקין.

פוסט זה יסתכל על כמה שיטות פייתון חלופיות לקבלת רשימה של התהליכים הפעילים כרגע של מערכת ההפעלה Windows.

כלי חיתוך באובונטו

כדי לקבל את התוצאה הרצויה, נתאר תחילה שיטת Python. לאחר מכן נבחן פקודה ממעבד הפקודה של Windows כדי לבצע את אותו הדבר.

pip להתקין wmi

העתק את הקוד שלמעלה בטרמינל.

דוגמא

 #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}>

פרמטרים

    ידית:PyHANDLE (ידית לשרשור המעניין)dwIdealProcessor:int (מספר מעבד אידיאלי)

סוג החזרה

שיטה זו מחזירה את ערך int

27. GetProcessAffinityMask

win32process.GetProcessAffinityMask

תחביר

win32process.GetProcessAffinityMask( hProcess )

פרמטרים

    hProcess:PyHANDLE (טיפול לתהליך המעניין)

סוג החזרה

שיטה זו מחזירה טופל של (מסיכת זיקה לתהליכים, מסכת זיקה למערכת).

28. SetProcessAffinityMask

win32process.SetProcessAffinityMask

תחביר

win32process.SetProcessAffinityMask( hProcess, mask )

מגדיר מסכת זיקה למעבד עבור תהליך שצוין.

פרמטרים

    hProcess:PyHANDLE (טיפול לתהליך המעניין)מסכה:int (מסיכת זיקה למעבד)

הערה: בחלק מהפלטפורמות אין תכונה זו.

29. SetThreadAffinityMask

win32process.SetThreadAffinityMask

תחביר

win32process.SetThreadAffinityMask( hThread, ThreadAffinityMask )

פרמטרים

    hThread:PyHANDLE (ידית לשרשור המעניין)ThreadAffinityMask:int (מסיכת זיקה למעבד)

סוג החזרה

שיטה זו מחזירה ערך int.

30. SuspendThread

win32process.SuspendThread

תחביר

int = SuspendThread( handle )

משעה את השרשור שצוין.

פרמטרים

    ידית:PyHANDLE ( ידית לפתיל )

ערך החזרה

ערך ההחזרה הוא ספירת ההשעיה הקודמת של השרשור

31. ResumeThread

win32process.ResumeThread

תחביר

int = ResumeThread( handle )

ממשיך את השרשור שצוין. כאשר ספירת ההשעיה מופחתת לאפס, ביצוע השרשור מחודש.

פרמטרים

    ידית:PyHANDLE ( ידית לפתיל )

ערך החזרה

ערך ההחזרה הוא ספירת ההשעיה הקודמת של השרשור

32. סיים תהליך

win32process.TerminateProcess

תחביר

TerminateProcess( handle, exitCode )

פרמטרים

    ידית:PyHANDLE (טיפול לתהליך)קוד יציאה:int (קוד היציאה לתהליך)

33. xitProcess

win32process.ExitProcess

    תהליך יציאה:סוף התהליך וכל החוטים שלו

פרמטרים

    קוד יציאה:int (מידע על קוד יציאה מסופק עבור התהליך, וכל השרשורים שהסתיימו כתוצאה מקריאה זו.)

הדרך הטובה ביותר לעצור תהליך היא באמצעות ExitProcess. כיבוי תהליך נקי מסופק על ידי פונקציה זו. זה כולל פנייה לפונקציית נקודת הכניסה של כל ספריית קישור דינמי (DLL) משויכת עם ערך המציין שהתהליך נפרד מה-DLL. קובצי ה-DLL המשויכים לתהליך אינם מקבלים מידע על סיום התהליך אם תהליך מסתיים על ידי הפעלת win32process::TerminateProcess.

34. EnumProcesses

win32process.EnumProcesses

תחביר

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

מספק Pids לפעילויות שפועלות בפועל.

35. EnumProcessModules

win32process.EnumProcessModules

תחביר

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

מפרט מודולים טעונים עבור ידית תהליך

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך כפי שהוחזר על ידי OpenProcess)

36. EnumProcessModulesEx

win32process.EnumProcessModulesEx

תחביר

סדרת פיבונאצ'י ב-c
( long,.... ) = EnumProcessModulesEx( hProcess, FilterFlag )

מפרט את המודולים של 32 או 64 סיביות שתהליך טען.

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך ש-OpenProcess החזיר) FilterFlag=LIST_MODULES_DEFAULT : int (בחר אם להחזיר מודולים של 32 סיביות או 64 סיביות. ) צריך Windows Vista ואילך.

37. GetModuleFileNameEx

win32process.GetModuleFileNameEx

תחביר

PyUNICODE = GetModuleFileNameEx( hProcess, hModule )

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך ש-OpenProcess החזיר)hModule:PyHANDLE (פרמטר זה מטפל במודולים)

38. GetProcessMemoryInfo

win32process.GetProcessMemoryInfo

תחביר

dict = GetProcessMemoryInfo( hProcess )

dict המייצג מבנה PROCESS_MEMORY_COUNTERS מוחזר כסטטיסטיקה של זיכרון התהליך.

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך כפי שהוחזר על ידי OpenProcess)

39. GetProcessTimes

win32process.GetProcessTimes

תחביר

dict = GetProcessTimes( hProcess )

השג סטטיסטיקות זמן עבור תהליך באמצעות הידית שלו. (ב-100 יחידות ננו-שניות עבור UserTime ו-KernelTime)

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך כפי שהוחזר על ידי OpenProcess)

40. GetProcessIoCounters

win32process.GetProcessIoCounters

תחביר

dict = GetProcessIoCounters( hProcess )

סטטיסטיקות קלט/פלט עבור תהליך מוחזרות כמילון המתאים למבנה IO_COUNTERS.

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך כפי שהוחזר על ידי OpenProcess)

41. GetProcessWindowStation

win32process.GetProcessWindowStation

תחביר

GetProcessWindowStation()

מחזיר ידית לתחנת החלון לתהליך ההתקשרות.

42. GetProcessWorkingSetSize

win32process.GetProcessWorkingSetSize

תחביר

int,int = GetProcessWorkingSetSize( hProcess )

גדלים מינימליים ומקסימליים של סט עבודה של תהליך מוחזרים.

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך כפי שהוחזר על ידי win32api::OpenProcess)

43. SetProcessWorkingSetSize

win32process.SetProcessWorkingSetSize

תחביר

SetProcessWorkingSetSize( hProcess, MinimumWorkingSetSize, MaximumWorkingSetSize )

מגדיר גודל סט עבודה מינימלי ומקסימלי עבור תהליך.

פרמטרים

    hProcess:PyHANDLE (טיפול בתהליך כפי שהוחזר על ידי OpenProcess)MinimumWorkingSetSize:int (מספר בתים מינימלי שיש לשמור בזיכרון הפיזי)גודל סט עבודה מקסימלי:int (מספר בתים מקסימלי לשמירה בזיכרון הפיזי)

הערה: כדי להחליף לחלוטין את ההליך, הגדר את המינימום והמקסימום ל-1.

44. GetProcessShutdownParameters

win32process.GetProcessShutdownParameters

תחביר

int,int = GetProcessShutdownParameters()

חושף את רמת הסיום הנוכחית של התהליך ומפעילים.

הטווח הוא 000-0FF. חלונות שמורים, אחרונים, 200-2FF אמצעי, ראשון, 300-3FF, ורביעית, 400-4FF חלונות.

45. SetProcessShutdownParameters

win32process.SetProcessShutdownParameters

תחביר

SetProcessShutdownParameters(Level, Flags)

מגדיר את דגלי התהליך ואת עדיפות הסיום.

פרמטרים

    רָמָה:int (פרמטר זה מציג עדיפות גבוהה יותר שווה קודם לכן)דגלים:int (פרמטר זה מראה שרק SHUTDOWN NORETRY תקף כרגע).

הטווח הוא 000-0FF. 100-1FF אחרון, 200-2FF אמצע, 300-3FF ראשון, 400-4FF, ושמורה על ידי חלונות שמור.

46. ​​GetGuiResources

win32process.GetGuiResources

תחביר

int = GetGuiResources(Process, Flags )

נותן את כמות ה-GDI או נקודות האחיזה של אובייקט משתמש שתהליך מחזיק.

פרמטרים

    תהליך:PyHANDLE (פרמטר זה של Win32api::OpenProcess שהוחזר לתהליך)דגלים:int (פרמטר זה מציג GR USEROBJECTS או GR GDIOBJECTS (מ-win32con))

47. תהליך IsWow64

win32process.IsWow64Process

תחביר

bool = IsWow64Process(Process)

מזהה אם WOW64 מפעיל כעת את התהליך שצוין.

פרמטרים

    תהליך=אין:PyHANDLE (ידית תהליכים שהוחזרה על ידי win32api::OpenProcess, win32api::GetCurrentProcess וכו'; אם ניתנת None (ברירת המחדל), תעשה שימוש באספקת התהליך הנוכחית.)

בוא נראה את ערך ההחזר שלו.

ערך ההחזרה הוא False אם מערכת ההפעלה אינה מספקת פונקציה זו (כלומר,

חריג NotImplemented לעולם לא יושלך). עם זאת, א

חריג win32process.error לכך נזרק בדרך כלל אם הפונקציה זמינה

אבל לא יעיל.

סיכום

במאמר זה, דנו בתהליך Python win32. כמו כן, דנו בסוגים השונים של השיטות והפרמטרים שלהם וערכי ההחזרה בזה אחר זה.