Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prioritäten setzen "SetPriorityClass" (https://www.delphipraxis.net/32059-prioritaeten-setzen-setpriorityclass.html)

Basilikum 2. Feb 2006 14:33

Re: Prioritäten setzen "SetPriorityClass"
 
Zitat:

Zitat von Luckie
Wie man der Dokumentation entnehmen kann erwartet SetPriorityClass als ersten Parameter die ProcessID.

also meiner Doku (Platform SDK) entnehme ich, dass selbige API einen Handle (nicht ID) des Prozesses erwartet.....

Luckie 2. Feb 2006 14:34

Re: Prioritäten setzen "SetPriorityClass"
 
Oder so. Ich war mir nicht sicher was GetCurrentProcess zurückliefert.

rlossin 2. Feb 2006 20:59

Re: Prioritäten setzen "SetPriorityClass"
 
Hat jemand n Beispiel, wie ich das dann verknüpfe?
Ich muss leider eingestehen, dass ich von Delphi nicht so die Ahnung habe, aber es ist relativ wichtig. Ich würde auch einen kleinen Betrag dafür zahlen.
Also ein Programm, was schaut ob exe XY.exe läuft, und wenn ja, die Priorität auf "höher als normal" setzt. Wäre total super!!!!

Grüße

Roman

thomasw 2. Feb 2006 21:42

Re: Prioritäten setzen "SetPriorityClass"
 
Es gibt nur relativ wenige Gruende, die es rechtfertigen mit hoeherer Prioritaet als normal zu arbeiten.

rlossin 2. Feb 2006 21:50

Re: Prioritäten setzen "SetPriorityClass"
 
Es geht um einen Film der laufen soll, ohne dass er stockt, während ein anderes Programm nebenbei läuft.

Ich habe es schon mit dem Taskmanager ausprobiert, wenn man es da einstellt, klappt es gut. Nun will ich es automatisiert.

Elvis 2. Feb 2006 22:28

Re: Prioritäten setzen "SetPriorityClass"
 
Zitat:

Zitat von rlossin
Es geht um einen Film der laufen soll, ohne dass er stockt, während ein anderes Programm nebenbei läuft.

Benutze Overlays für die Wiedergabe, dann wird das Rendering an die Hardware delegiert.

Wie bereits x-Mal beschrieben: Prioritäten ändern deutet auf 2 mögliche Ursachen hin: falsche Architektur oder nicht alle anderen verfügbaren Mittel verwendet. ;)
Die Priorität zu ändern bringt, wenn man das ganze System betrachtet, rein gar nix positives. Was sich dein Prozess krallt fehlt dann woanders.

sh17 3. Feb 2006 08:38

Re: Prioritäten setzen "SetPriorityClass"
 
Zitat:

Zitat von Elvis
Die Priorität zu ändern bringt, wenn man das ganze System betrachtet, rein gar nix positives. Was sich dein Prozess krallt fehlt dann woanders.

Wenn man einem arbeitsintensiven Hintergrund-Prozess eine niedrigere Priorität zuweist, bringt das für den Benutzer schon etwas positives.

Vjay 3. Feb 2006 10:53

Re: Prioritäten setzen "SetPriorityClass"
 
Da ich dir keine fertige Lösung bieten möchte:

Schau dir mal die Hilfe zu "OpenProcess" an.

Die PId des WMPlayers bekommst du so:

Delphi-Quellcode:
//if getPid('wmplayer.exe') <> 0 then läuft

function getPid(const name: string): integer;
var
 hProcSnap: THandle;
 pe32: TProcessEntry32;
begin
 result:= 0;
 hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
 if hProcSnap = INVALID_HANDLE_VALUE then exit;

 pe32.dwSize := SizeOf(ProcessEntry32);

 { wenn es geklappt hat }
 if Process32First(hProcSnap, pe32) = true then
   { und los geht's }
   while Process32Next(hProcSnap, pe32) = true do
   begin
    if lowerCase( pe32.szExeFile) = name then
    begin
     result:= pe32.th32ProcessID;
     break;
    end;
   end;
 CloseHandle(hProcSnap);
end;
Die Unit TlHelp32 mußt du mit einbinden. Damit solltest du es hinbekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz