Externes Programm in low priority starten?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

ok 2ter versuch,
probier es doch mal so:

Code: Alles auswählen

Procedure steam()
  Path$ = Reg_GetValue(#HKEY_CURRENT_USER, "Software\Valve\Steam", "SteamExe")
  prg = RunProgram(Path$, "", "", #PB_Program_Open)
  pid = ProgramID(prg)
  handle = OpenProcess_(#PROCESS_SET_INFORMATION, 0, pid)
  Result = SetPriorityClass_(handle, #IDLE_PRIORITY_CLASS)
  CloseHandle(handle)
EndProcedure
dieses mal hab ich es mit notepad getestet,
edit: und nochmal korrigiert ;)
PureBasic 4.40 (Windows - x86)
icecrusher
Beiträge: 62
Registriert: 01.03.2008 05:43
Wohnort: Hamm
Kontaktdaten:

Beitrag von icecrusher »

tobe hat geschrieben:ok 2ter versuch,
probier es doch mal so:

Code: Alles auswählen

Procedure steam()
  Path$ = Reg_GetValue(#HKEY_CURRENT_USER, "Software\Valve\Steam", "SteamExe")
  prg = RunProgram(Path$, "", "", #PB_Program_Open)
  pid = ProgramID(prg)
  handle = OpenProcess_(#PROCESS_SET_INFORMATION, 0, pid)
  Result = SetPriorityClass_(handle, #IDLE_PRIORITY_CLASS)
  CloseHandle(handle)
EndProcedure
dieses mal hab ich es mit notepad getestet,
edit: und nochmal korrigiert ;)
CloseHandle() is not a function, macro array or linked list :/
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ja einfach ein _ ran packen , weils eine API-Procedure ist

also:

CloseHandle_()
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
icecrusher
Beiträge: 62
Registriert: 01.03.2008 05:43
Wohnort: Hamm
Kontaktdaten:

Beitrag von icecrusher »

Hey cool, danke :) es funktioniert :P

Folgende frage:

ist es möglich, meinem Programm Startparameter einzupflanzen z.B.

steam_launch.exe /low

??

Dann müsste ich den Launcher für den Normalen start von Steam nicht erneut Compilen ohne das priority Class..
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ja klar, dafür ist der mögliche 2. Parameter der Procedure
RunProgram(DateiName$ [, Parameter$, Arbeitsverzeichnis$ [, Flags [, SenderProgramm]]])
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
icecrusher
Beiträge: 62
Registriert: 01.03.2008 05:43
Wohnort: Hamm
Kontaktdaten:

Beitrag von icecrusher »

STARGÅTE hat geschrieben:ja klar, dafür ist der mögliche 2. Parameter der Procedure
RunProgram(DateiName$ [, Parameter$, Arbeitsverzeichnis$ [, Flags [, SenderProgramm]]])
Soweit ist es mir schon bewusst, nur ich möchte, dass eine Kompilierte .exe die ich mit PB erstellt habe auf Startparameter reagiert z.B. so:

Ich habe einmal steamstarter.exe diese beinhaltet 2 Buttons, einer für Low Priority und der Andere für Normal Priority

Klicke ich nun auf Low priority, sollte der startparameter /low an die steam_launch.exe übergeben werden, der dann Steam im Low Priority Mode startet, klicke ich aber auf Normal, soll er sie normal starten..

Weis nicht ob es verständlich ist
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Schau dir mal ProgramParameter() an!
Und damit du nicht immer auf Antworten warten musst, blättere mal durch die PB-Hilfe (in diesem Fall die Process-Lib) und lies dir die vorhandenen Befehle mal präventiv durch!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag von Andreas21 »

tobe hat geschrieben:es gibt diese vier stufen für die priorität mit SetPriorityClass():

Code: Alles auswählen

#IDLE_PRIORITY_CLASS
#NORMAL_PRIORITY_CLASS
#HIGH_PRIORITY_CLASS
#REALTIME_PRIORITY_CLASS
Es giebt aber 8 ;)

MSDN:
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Nach fast vier Monaten interessiert das keinen Schwanz mehr. :wink:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten