1: | function getPid(const name: string): integer; |
1: | setpriorityclass(getPid('explorer.exe'), HIGH_PRIORITY_CLASS); |
http://msdn.microsoft.com/en-us/library/ms686219.aspx hat folgendes geschrieben: |
hProcess [in]
A handle to the process. |
1: | YourHandle := OpenProcess(PROCESS_SET_INFORMATION, false, YourPID); |
![]() ![]() | ||||
Du hast die Doku nicht richtig gelesen.
Du musst dir dieses also erst holen. Das geht mit OpenProcess: Delphi-Quelltext
|
1: | newhandle := OpenProcess(PROCESS_SET_INFORMATION, false, getPid('explorer.exe')); |
1: | function getPid(const name: string): integer; |
1: | procedure TForm1.Button1Click(Sender: TObject); |
![]() ![]() |
Ich schreibe noch mal für alle anderen, komplettes Beispiel um von einem beliebigen Prozess die Priorität ändern kann: |
![]() ![]() |
Normalerweise reicht HIGH_PRIORITY_CLASS auch aus. |
RAD Studio 2009 Hilfe hat folgendes geschrieben: |
Priority Meaning ABOVE_NORMAL_PRIORITY_CLASS 0x00008000 Process that has priority above NORMAL_PRIORITY_CLASS but below HIGH_PRIORITY_CLASS. Windows NT and Windows Me/98/95: This value is not supported. BELOW_NORMAL_PRIORITY_CLASS 0x00004000 Process that has priority above IDLE_PRIORITY_CLASS but below NORMAL_PRIORITY_CLASS. Windows NT and Windows Me/98/95: This value is not supported. HIGH_PRIORITY_CLASS 0x00000080 Process that performs time-critical tasks that must be executed immediately. The threads of the process preempt the threads of normal or idle priority class processes. An example is the Task List, which must respond quickly when called by the user, regardless of the load on the operating system. Use extreme care when using the high-priority class, because a high-priority class application can use nearly all available CPU time. IDLE_PRIORITY_CLASS 0x00000040 Process whose threads run only when the system is idle. The threads of the process are preempted by the threads of any process running in a higher priority class. An example is a screen saver. The idle-priority class is inherited by child processes. NORMAL_PRIORITY_CLASS 0x00000020 Process with no special scheduling needs. PROCESS_MODE_BACKGROUND_BEGIN 0x00100000 Begin background processing mode. The system lowers the resource scheduling priorities of the process (and its threads) so that it can perform background work without significantly affecting activity in the foreground. This value can be specified only if hProcess is a handle to the current process. The function fails if the process is already in background processing mode. Windows Server 2003 and Windows XP/2000: This value is not supported. PROCESS_MODE_BACKGROUND_END 0x00200000 End background processing mode. The system restores the resource scheduling priorities of the process (and its threads) as they were before the process entered background processing mode. This value can be specified only if hProcess is a handle to the current process. The function fails if the process is not in background processing mode. Windows Server 2003 and Windows XP/2000: This value is not supported. REALTIME_PRIORITY_CLASS 0x00000100 Process that has the highest possible priority. The threads of the process preempt the threads of all other processes, including operating system processes performing important tasks. For example, a real-time process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive. |
![]() ![]() |
Ich würde mir wünchen, wenn deine Funktion die alte Priorität zurückgibt, so dass man diese wieder herstellen kann. Desweiteren rate ich davon die Priorität von Prozessen und Threads zu ändern. Ich bin der Meinung, wenn man zum Beispiel die Priorität von Threads ändern muss, damit das Programm funktioniert, hat man was falsch gemacht. Und, ich meine, die Priortät von fremden Prozessen hat einen nicht zu interessieren. Der Scheduler von Windows verteilt die Zeitscheiben schon sehr gut. Ein manuelles Eingreifen macht selten etwas besser. |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!