CPU-Last eines anderen Programms beeinflussen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
derRaab
Beiträge: 71
Registriert: 30.12.2004 13:45
Wohnort: Berlin
Kontaktdaten:

CPU-Last eines anderen Programms beeinflussen?

Beitrag von derRaab »

Hallo Leute!

Gibt es die Möglichkeit die Priorität eines extern mit "RunProgram" gestartetes Programm zu beeinflussen?

Das andere Programm lastet die CPU voll aus und so läuft mein eigentliches Programm nicht mehr sauber. Von anderen Programme ganz zu schweigen.

Bei Threads kann ich ja mit "ThreadPriority" die Priorität heruntersetzen. Gibt es etwas Ähnliches auch für externe Programme die ich gestartet habe? Die Process-Bibliothek gibt nix her. Und über WinAPI finde ich nix. Zumindest nichts was ich verstehe. :(

Hat vielleicht jemand einen Tipp? Danke
myself
Beiträge: 67
Registriert: 18.03.2006 12:48

Beitrag von myself »

Du musst die handles des Main Threads, oder am besten aller threads rausfinden und diese per ThreadPriority herunterzusetzen.
Benutzeravatar
derRaab
Beiträge: 71
Registriert: 30.12.2004 13:45
Wohnort: Berlin
Kontaktdaten:

Beitrag von derRaab »

Das hab ich mir schon gedacht, aber wie weißt Du auch nicht, oder?
Benutzeravatar
Sicro
Beiträge: 963
Registriert: 11.08.2005 19:08
Kontaktdaten:

Beitrag von Sicro »

Hier ein Beispielcode:

Code: Alles auswählen

Procedure SetPriority(ProgramID.l, PriorityLevel.l)
  Protected ProcessHandle.l

  ProcessHandle = OpenProcess_(#PROCESS_DUP_HANDLE + #PROCESS_SET_INFORMATION, #True, ProgramID)
  If ProcessHandle
    SetPriorityClass_(ProcessHandle, PriorityLevel)
    CloseHandle_(ProcessHandle)
  EndIf
EndProcedure

Result = RunProgram("notepad.exe", "", "", #PB_Program_Open)
If Result
  SetPriority(ProgramID(Result), #IDLE_PRIORITY_CLASS)     ; niedrige Prioritätsstufe
  ; SetPriority(ProgramID(Result), #NORMAL_PRIORITY_CLASS) ; normale Prioritätsstufe
  ; SetPriority(ProgramID(Result), #HIGH_PRIORITY_CLASS)   ; hohe Prioritätsstufe
  CloseProgram(Result)
EndIf
Mfg DerProgger
Benutzeravatar
derRaab
Beiträge: 71
Registriert: 30.12.2004 13:45
Wohnort: Berlin
Kontaktdaten:

Beitrag von derRaab »

Vielen Dank DerProgger!

Komisch, in meiner winAPI-Doku finde ich den Befehl gar nicht. Egal. Dir vielen Dank! Wenn Du mal eine Flash Frage hast, immer gern...

:allright:
Antworten