Priorität eines Prozesses erhöhen
-
Hallo,
hab folgendes Problem: ich rufe mit CreateProcess(..) einen Prozess auf und will bei diesem Prozess die Priorität erhöhen. Hab das mal so ausprobiert:
PROCESS_INFORMATION proc_info; ZeroMemory ( &proc_info, sizeof(proc_info) ); // mit Nullen auffüllen STARTUPINFO start_info; GetStartupInfo( &start_info ); // StartupInfos erhalten start_info.wShowWindow = SW_SHOW; if ( CreateProcess( EXE, // auszuführende Datei mit vollst. Pfad argumente, // Kommandozeilenargumente NULL, NULL, true, CREATE_DEFAULT_ERROR_MODE, NULL, PFAD, // Pfad, indem das auszuführende Programm liegt &start_info, // StartupInfo &proc_info // erhält Infos über den aufgerufenen Prozess ) == 0 ) { printf("Fehler beim Starten des Programms\n"); exit (1); } HANDLE hprocess = proc_info.hProcess; unsigned long ExitCode; if ( SetPriorityClass(hprocess, HIGH_PRIORITY_CLASS) == NULL) { printf("Prioritaet konnte nicht erhoeht werden!\n"); exit (1); }Das funktioniert auch, nur dass dann sonst überhaupt nichts mehr läuft. Hab erfahren, dass man da auch was mit SetThreadPriority machen kann. Hab dann auch mal in der MSDN-Library nachgeschaut und gelesen, dass da THREAT_SET_INFORMATION gesetzt sein muss. Leider hab ich da dann irgendwann überhaupt nicht mehr durchgeblickt. Hat jemand schon damit gearbeitet oder weiss wie es geht?
Dankeschön!
MFG
Barney
-
mach einfach:
SetThreadPriority (proc_info.hThread, THREAD_PRIORITY_xxx); // xxx: siehe msdndamit setzte die prio für den ersten thread des programms das mit CreateProcess() gestartet wurde (der thread, mit der 'main' funktion)
-
Hi,
so klappts! Danke für die schnelle Hilfe!
MFG
Barney