wenn ich aus der meiner MP3-Anwendung heraus ein externes Programm starte, kommt es genau beim Start zu hohen CPU-Auslastungen, so das ich kurze Aussetzer bei der Wiedergabe von MP3 habe.
Ich habe mich mal in Thread und Process-Prioritäten eingelesen und auch soweit Resultate, nur wie macht man es richtig bzw optimiert ?
Ich möchte die externe Anwendung soweit wie möglich in der CPU-Auslastung gebremst starten, sodas es die Hauptanwendung nicht stört.
Hier mal mein Code dazu:
Code:
var
app,appWithPath,WndClass: String;
ProcID,ThreadID: Cardinal;
AppWindow,Wnd : HWnd;
begin
....
ProcID := 0;
AppWindow := 0;
RunProcess(appWithPath, SW_SHOW, FALSE, @ProcID);
SetProcessPriorty(ProcID,IDLE_PRIORITY_CLASS); // zum testen !
SetThreadPriority(GetCurrentThreadId,THREAD_PRIORITY_IDLE);
repeat
AppWindow := GetWndHandle(ProcID);
application.ProcessMessages;
sleep(500);
until (AppWindow <> 0) or stopSearch; //stopSearch durch Timer, falls gar nicht findet
if AppWindow <> 0 then
begin
Sleep(500);
SetThreadPriority(GetCurrentThreadId,THREAD_PRIORITY_NORMAL);
SetProcessPriorty(ProcID,NORMAL_PRIORITY_CLASS); // zum testen !
end;
....
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz