Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Process Priorität setzen - als Variable... (https://www.delphipraxis.net/18163-process-prioritaet-setzen-als-variable.html)

DRPEnc 15. Mär 2004 19:16


Process Priorität setzen - als Variable...
 
Ich mal wieder, der Dauergast :-D

Ich hab paar Processe in mein Programm eingebaut welche eine batchdatei starten. Die Priorität dieser Batch will ich nun ändern können. Ich will aber keine fixe Priorität erzeugen sondern eine Funktion dem Programm hinzuzufügen damit der User selber entscheiden kann welche Priorität die Batch erhält.

Also hier mal ein Sourceschnippsel:

Delphi-Quellcode:
ProcID := 0;
RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);
Zu diesem RunProcess-Befehl will ich nun eine Variable hinzufügen, sodass der Process eine Priorität erhält.
Wie mach ich das am Besten?

Christian Seehase 15. Mär 2004 22:19

Re: Process Priorität setzen - als Variable...
 
Moin DRPEnc,

wenn Dir die grobe Einteilung der API SetPriorityClass genügt, fügst Du diesen Wert einfach als Parameter hinzu, und ergänzt dann die RunProcess Routine um das setzen der Prioritäts Klasse.

DRPEnc 15. Mär 2004 22:27

Re: Process Priorität setzen - als Variable...
 
Ich will ja eine variable PritorityClass. Sozusagen eine Option die Pritorität zu setzen und dann den Process mit dieser zu starten.

Wie soll ich deiner Meinung deinen Vorschlag umsetzen?

Eine Variable setzen, die dann mit der Pritoritätsklasse belegt wird?
Falls dies geht müsste ich 'Normal' als Standart setzen.

Christian Seehase 15. Mär 2004 22:32

Re: Process Priorität setzen - als Variable...
 
Moin DRPEnc,

warum sollte das nicht gehen?
Du könntest z.b. eine ComboBox einbauen, die die Texte für die Prioritätsklassen enthält, und bei denen die Items noch die korrespondierenden Werte der Konstanten als Objekt enthalten. Mit dieser Methode könntest Du Dir sogar noch ein Umrechnung von Index in Wert ersparen.
Das Ganze dann noch mit dem Stil DropDownList, damit man nichts eingeben, sondern nur auswählen kann.

DRPEnc 19. Mär 2004 17:50

Re: Process Priorität setzen - als Variable...
 
K, habs mal aufgeschoben...

Delphi-Quellcode:
 H := GetCurrentProcess();
  SetPriorityClass(H, HIGH_PRIORITY_CLASS );

  // NORMAL_PRIORITY_CLASS  
  // IDLE_PRIORITY_CLASS            
  // HIGH_PRIORITY_CLASS
Sind ja die Prioritätsklassen.
Nun muss es ja ins programm eingebunden werden. Wie gesagt als variable...

Ich dachte mir das so:

Drobdownmenu mit den einzelnen Klassen die dann jeweils in ne Edit getextet werden.

Und dann folgenden Code ausführen:

Delphi-Quellcode:
A:= GetCurrentProcess();
        B:= form1.Edit1.text;

SetPriorityClass(A, B );
ShellExecute(0, Nil, PChar(form1.edit2.text), Nil, Nil, SW_NORMAL);
Oder liege ich da irgenwie falsch?

Skiron 19. Mär 2004 18:02

Re: Process Priorität setzen - als Variable...
 
du könntest die prioritäten als konstanten deklarieren:
Delphi-Quellcode:
var
  Priorities: array[0..3] of longint =
    (REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS);
Somit kannst du hier einfach mit dem Index zugreifen

DRPEnc 19. Mär 2004 19:08

Re: Process Priorität setzen - als Variable...
 
Delphi-Quellcode:
var
  Priorities: array[0..3] of longint =
    (REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS);
  A:= GetCurrentProcess();
begin
SetPriorityClass(A, Priorities );
ShellExecute(0, Nil, PChar(form1.edit2.text), Nil, Nil, SW_NORMAL);
Und so einstetzen?

Christian Seehase 19. Mär 2004 19:10

Re: Process Priorität setzen - als Variable...
 
Moin DPREnc,

hast Du Dir meinen Vorschlag mit der ComboBox überhaupt mal angesehen? ;-)

DRPEnc 19. Mär 2004 19:56

Re: Process Priorität setzen - als Variable...
 
Wollt alle Möglichkeiten mal sehen. Das mit der Dropdowncombo gefällt mir auch am besten ...

DRPEnc 19. Mär 2004 20:35

Re: Process Priorität setzen - als Variable...
 
Hi Seehase. Kannst Du mir auf die Sprünge helfen?

So weit bin ich nun:

Combobox als Listbox mit den Prioritäten.
Werden in eine Edit geschrieben.
Nur weis ich nicht wohin die Priorität in den RunProcess kommen soll...

Delphi-Quellcode:
RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.
Seite 1 von 4  1 23     Letzte »    

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