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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49486
Url: https://administrator.de/contentid/49486
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
6 Kommentare
Neuester Kommentar
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
und das dann mit zB ExeScript in eine exe umwandeln und in den programmnamen umbenennen.
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
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.
(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.