Stránka 1 z 2

Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 5. 12. 2009 18:13
od mariank
Vo Windows Task Manageri viem zmeniť prioritu určitého procesu.
Ale ako to urobiť natrvalo, napr. aj po reštarte resp. vypnutí pc, aby som to stále
nemusel manuálne vždy nastavovať.

Skúsil soft Prio - Priority Saver, ale ten nefunguje...
V ini-súbore je to správne uložené, ale nenastaví sa to tak.

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 5. 12. 2009 18:20
od Milanr1
V OS WNT řady 6.1 je poprvé v historii tato možnost (konečně!!) po letech připomínkování betatesterů zabudována do Task Manageru:
karta Processes
pravomyš na proces
Set priority
a volba dole: Save priority
Btw:
Utilitka Prio fungovala v dřívějších verzích OS WNT.

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 5. 12. 2009 18:30
od tibika
To je zvlastne, ja tam taku volbu nemam, su tam len moznosti samotnej priority, bez moznosti ulozit... (w7 x64 CZ)

Aspon takto to ide (trochu zlozitejsie, ale ide)

nech teda chcem zmenit prioritu programu spustaneho cez
C:\program\prog.exe

vytvorim (napr. v notepade) subor prog.bat s obsahom
cmd /c start /HIGH prog.exe

a tento subor dam do zlozky C:\program (t.j. k povodnemu .exe)
(miesto /HIGH moze byt aj /AboveNormal, /Normal, /BelowNormal, /Low)


No a teraz bud priamo spustim ten subor prog.bat alebo na neho vytvorim normalny odkaz napr. na ploche.

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 5. 12. 2009 19:11
od mariank
Skúšal som to cez ten bat - súbor a nezmení mi to ani tak prioritu.

Mám Win 7 x64 En

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 5. 12. 2009 19:15
od tibika
No neviem... asi robis niekde chybu, mne to spolahlivo funguje

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 5. 12. 2009 19:36
od tibika
Skus teda takto:

v tom subore prog.bat napis:

Kód: Vybrat vše
@echo off
CD "C:\program\"
start /High prog.exe


Toto uz by fakt malo fungovat :D

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 6. 12. 2009 10:00
od mariank
Môj bat -súbor vyzerá nasledovne:

@echo off
CD "E:\Program Files (x86)\AMC2000\ATV2000\"
start /High ATV2000.exe

Skúšal som to spúšťať aj cez "Run as administrator", skúšal som nastaviť ak kompatibilitu.
Stále to nenastaví prioritu.

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 6. 12. 2009 12:49
od tibika
Tento sposob funguje, ale je jedna vynimka co som si vsimol -- ked pred spustenim toho programu musim potvrdit UAC, tak priorita je skutocne normal, bez ohladu na nastavenie v bat...

uz mi fakt nic ine nenapadá, tak snad uz len vypnut UAC.. (napr. Opera ok, ale everest potrebuje vzdy potvrdenie -- priorita stale normal)

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 6. 12. 2009 18:18
od mariank
Vypol som aj UAC a stále to nefunguje.
Skúšal som firefox.exe a tam to fungovalo aj so zapnutým UAC.

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 6. 12. 2009 23:44
od oooooooooo
Existuje ještě jedna cesta - Get-WmiObject win32_process a SetPriority
Zkusím se podívat přimo na script kterej to je v Scriptomaticu zítra jestli to najdu.
Aha takže v scriptomaticu jsem to nenašel ale pokud si udělaš powershell script který spustí everest - koneckonců jestli maš batak nebop powershell script je celkem jedno.zadej do powershellu get-help start-process -full a bude jasno.
Neboli start-process s | foreach { $_.PriorityClass = "High" }
Nastaveni priority v get-process gps everest | foreach { $_.PriorityClass = "High" }

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 7. 12. 2009 15:28
od mariank
Ked spustim ATV2000.exe a potom v powershelli spustim
get-process ATV2000 | foreach { $_.PriorityClass = "High" }

tak mi to nastavi High prioritu.

Poradte mi ako mam napisat bat-subor,
aby spustil ATV2000.exe a potom spustil v powershelli ten prikaz ????

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 7. 12. 2009 23:20
od oooooooooo
powershell umi všechno sám,nicmeně koukam že mam PM od vás napišu vám jak na to .Misto bataku udělate ps1 neboli powershell script.
Ale až zítra dnes už hlava nebere a dorážím slivovici
Kdyby nahodou tak to bude vypadat asi takto - script v němž bude start -process ATV2000 a misto pokračování get bude další požadovek již jen na nastavení priority na high tot vše.Kliknete na script spusti se s prioritou high to co chcete.neboli před krok 2 který jste dělal ted se strčí krok s požadavkem startu daného procesu.
Ted jsem si uvědomil že vam budu muset napsat co znamena set-execution policy a proč si bez toho ani svůj script nespustíte.
No nic zítra ,stejně planuju že bych plácl na blog nějaký miniserial s zajímavýma scriptama,přikazama v powershellu,seven má celkem dost lidí - takže ti ho mají všichni.
Jinak napsat batak poradi kdokoliv jak na to kdyby něco a help powershellu poradí jak spouštět pomocí něj cokoliv - nejenom batak.

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 8. 12. 2009 09:31
od oooooooooo
Dám to sem místo do PM kdyby měl někdo stejný problem.
Spuštění s high prioritou pomocí powershellu - pokud ti jiný způsoby selhaly - přesněj v cestě stojí UAC.To co napišu si dej do obyčejneho textaku.Spust powershell jako admin.
Tak jak to je tam vlož spusti se oba prikazy - process poběží s prioritou high,jde udělat i script ovšem spouštění vyžaduje prvotní nastavení set-execution policy
remotesigned to popíšu pozděj na blogu.Můžeš koneckonců spouštět více procesů naráz takto a s rozdilnýma prioritama.

start-process ATV2000
gps ATV2000 | foreach { $_.PriorityClass = "High" }

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 8. 12. 2009 11:40
od tibika
S tym UAC je to fakt sranda... v podstate program pozadujuci potvrdenie ma vyssie prava ako ja, lebo takym programom nemozem nastavit prioritu procesu cez task mananager (nedostatocne prava)... az ked som task man. spustil ako admin, dovolil mi zmenit aj takemu procesu prioritu...

No ale dobre ze sa nasiel niekto, kto tomu tak rozumie (respect), ja uz som bol zufaly, co do toho bataku napisat :-D

Re: Ako nastaviť prioritu procesu natrvalo ?

Odeslat příspěvekNapsal: 10. 12. 2009 22:10
od tibika
Tak teda napokon SOLVED.

ooooooooo tu ukazal skutocne cestu ako na to, ale malo to jednu muchu -- uzivatelsky komfort -- vzdy by bolo treba spustat powershell, menit execution policy a napokon spustit skript.

Zakladny problem je, ze powershell v default nastaveni nechce vykonavat skripty, ktore nie su podpisane. Navyse, tato politika sa neda trvalo zmenit, len cez interface powershellu a len na danu session (zmena policy vyzaduje potvrdenie uzivatela).

Existuje na to taky bypass: v principe mozno zadavat prikazy powershellu ako parameter pri jeho spusteni cez cmd, napr.

Kód: Vybrat vše
powershell -command "1+2"
>> 3

Toto ale ma jednu nevyhodu -- niekedy sa samotny cmd pokusi parsovat obsah prikazu powershellu (pri "1+2" to funguje ok, ale je to nevyspytatelne). Takze treba urobit bypass bypassu a to tak, ze ten prikaz powershellu sa zakoduje. Tu je priklad:

Kód: Vybrat vše
$code = {start-process "C:\files\prog\program.exe"}
$encd = [convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))

Vznikne nieco podobne (nenapisem to cele, je to dllhy retazec):
Kód: Vybrat vše
cwB0AGEAcgB0AC0AcAByAG8AYwBlAHMAc

No a teraz uz len v cmd (napr. aj cez batch-file) zadat
Kód: Vybrat vše
powershell -encoded cwB0AGEAcgB0AC0AcAByAG8AYwBlAHMAc

No a takto sa da pokracovat zlozitejsimi prikazmi resp. celym "programom" -- v podstate prinutite powershell vykonavat skript, ani o tom sam nevie :D a je to proti jeho execution policy. Samozrejme -- ked to je treba, musi sa bat spustat pod admin pravami, ale na to už bypass nie je :-]