Priorytet

0

Szukałem na google i tutaj ale nic nie znalazłem na temat jak programowo zmienić priorytet procesu dowolnej aplikacji. Jeśli by ktoś wiedział to proszę o odpowiedź. Najlepiej jakby to było na Buildera.

0

a ja lookanlem na google i na poczatku znalazlem (po polsku...)

http://zeus.polsl.gliwice.pl/~arturpas/index.htm

tam gosc pod Delphi podaje przyklad tyle ze korzysta z ort! procesu - funkcja getcurrentprocess()

Jezeli to ma byc dowolny tzn. ze musisz chyba uzyskac uchwyt...

0

wlasnie widze ze jest tam rozniez jak uzyskac uchwyt procesu...
zatem funkcja SetPriorityClass() + tamten przyklad i gotowe :)

0

Ale tam jest uchwyt do okna aplikacji a nie do procesu, jeśli aplikacja nie ma swojego okna np: aplikacja uruchamiana pod Dosem. U mnie właśnie tak jest że uruchamiam pewną aplikację Dosową która uruchamia inny program przekazując mu pewne dane pobrane z internetu. Ten drugi program nie ma swojego okna. Jest procesem i nie wiem jak uzyskać do niego uchwyt.

0

uruchom ten child-proces poprzez

STARTUPINFO si
PROCESS_INFORMATION pi
si.cb = sizeof(si)
CreateProcess(NULL, "c:\\prog.exe /o parametry", NULL, NULL, True, 0, NULL, NULL, &si, &pi)
SetPriorityClass(pi.hProcess, REALTIME_PRIORITY_CLASS)
SetThreadPriority(pi.hThread, THREAD_PRIORITY_TIME_CRITICAL)
//uwaga! nawet myszka może nie działać :)
CloseHandle( pi.hProcess )
CloseHandle( pi.hThread )

//albo odrazu
CreateProcess(NULL, "c:\\prog.exe /o parametry", NULL, NULL, True, _
   IDLE_PRIORITY_CLASS, NULL, NULL, &si, &pi)

note: u mnie STARTUPINFO si automatycznie rezerwuje pamięć w .bss albo na stosie

jeśli masz spacje w pathu do pliku to obejmij execa w cudzysłów

CreateProcess(NULL, ""c:\\program files\\1.exe" /o parametry"

1 użytkowników online, w tym zalogowanych: 0, gości: 1