leknilk0815
Goto Top

Anwendung unter W2K3 priorisieren

Wie kann ich einer Anwendung eine höhere Priorität zuweisen?

Hallo zusammen,

ist es möglich, einer Anwendung (in dem Fall geht es um ein Programm zur Wetterdatenauswertung, Weatherprofessional.exe)
eine höhere Priorität bei der Ausführung zuzuweisen?
Falls möglich, kann dies dauerhaft eingerichtet werden, da die Anwendung zeitgesteuert automatisch gestartet wird und auch wieder beendet wird. Die Priorität sollte beibehalten werden, da dieses Programm wohl etwas schlampig programmiert ist und bei normaler Prio immer wieder Daten verloren gehen, welche von dem Prog eigentlich in einer PostGres- Datenbank abgelegt werden sollten.
Die Prozessorlast steigt dabei kurzfristig auf 95% an, wobei hier auch PostGres beteiligt ist (die beiden wechseln sich in der Auslastung ab).

Danke mal vorab, Gruß - Toni

Content-Key: 49486

Url: https://administrator.de/contentid/49486

Printed on: April 24, 2024 at 09:04 o'clock

Member: Kosh
Kosh Jan 22, 2007 at 11:09:58 (UTC)
Goto Top
wenn du die anwendung mit:
start /ABOVENORMAL /B meinprogramm.exe
startest, läuft der prozess "höher als normal".

ansonsten schau mal unter "start /?"
Member: leknilk0815
leknilk0815 Jan 22, 2007 at 11:32:28 (UTC)
Goto Top
Hi,
danke mal, hilft mir leider in dem Fall nicht weiter, da dieses Programm von einem anderen gestartet wird, und da komm ich nicht dran (ist in eine .exe verpackt).
Ich hätte eher an eine Priorisierung evt. über einen Registry- Eintrag gedacht...

Gruß - Toni
Member: Kosh
Kosh Jan 22, 2007 at 11:45:39 (UTC)
Goto Top
einen weg über die registry gibts da meines wissens nach nicht.

du könntest aber mal versuchen die exe datei die von dem anderen programm aufgerufen wird umzubenennen (in zB programm2.exe) , dann ein batchfile erstellen mit
start /ABOVENORMAL /B Programm2.exe
und das dann mit zB ExeScript in eine exe umwandeln und in den programmnamen umbenennen.
Member: leknilk0815
leknilk0815 Jan 22, 2007 at 11:56:01 (UTC)
Goto Top
hab ich auch schon überlegt, leider funktioniert dann das automatische beenden nicht mehr, da das Prog dann unter anderem Namen läuft...
Member: AndreasHoster
AndreasHoster Jan 22, 2007 at 12:43:56 (UTC)
Goto Top
Beim Starten wüsste ich auch nicht wie, aber man kann es hinetrher per Skript machen:
(Ist ein WSH Skript, einfach als .vbs speichern und mit wscript.exe NAME.vbs starten)
'* Verbindung mit WMI (Windows Management Instrumentation) aufnehmen
Set wmi = GetObject("winmgmts:{(Security)}")
'* Passende Prozesse rausssuchen (notepad.exe durch passenderes ersetzen
Set oProc = wmi.ExecQuery("select * from win32_process where name='notepad.exe'")
For each proc in oProc
'* Prio setzen 128 entspricht Hoch, i=0 bedeutet es hat geklappt.
i = proc.SetPriority(128)
Next

Aus der Doku die Werte für die unterschiedlichen Prios (Hex bitte in Dezimal umrechnen):
ValueMap = Array:
0 = 0x00000040
1 = 0x00004000
2 = 0x00000020
3 = 0x00008000
4 = 0x00000080
5 = 0x00000100
Values = Array:
0 = Leerlauf
1 = Niedriger als normal
2 = Normal
3 = Höher als normal
4 = Hohe Priorität
5 = Echtzeit
Für Echtzeit benötigt man noch das Privileg SeIncreaseBasePriorityPrivilege, der Rest geht so.
Member: leknilk0815
leknilk0815 Jan 22, 2007 at 12:53:10 (UTC)
Goto Top
Hi,
danke mal für die Infos, mal sehen, ob ich davon irgend was verwursteln kann...

Gruß - Toni