- Elektromos rásegítésű kerékpárok
- Argos: Szeretem az ecetfát
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- Fire/SOUL/CD: INGYENES Clone és Backup-Restore alkalmazások tesztje [2024]
- NASsoljunk: ZyXEL NSA-310 és az FFP
- sziku69: Fűzzük össze a szavakat :)
- Szevam: „Rendszerleállás” – egy AI képzeletbeli halál utáni élménye
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
Új hozzászólás Aktív témák
-
Paulo81
aktív tag
válasz
sztanozs #542 üzenetére
Nekem egy egyszerű probléma volt, amivel nem számoltam: a winmgmt-t letiltottam az asio állítás után, és enélkül a batch file nem tudja értelmezni azt a feltételt, hogy fut-e a foobar, szóval mindenképp 1 lett az errorlevel értéke.
Nálad fogalmam sincs mi okohatja, talán neked is valami win hülyeség...? -
Paulo81
aktív tag
Nagy nehézségek árán sikerült működőképesre varázsolni a progit.
-
Paulo81
aktív tag
Látom elegetek lett belőlem!
-
Paulo81
aktív tag
válasz
Baryka007 #532 üzenetére
Hogy állítsam az errorlevelt 3-ra? Set-tel nekem nem működött még a 0-ra állítás sem.
Ha Sztanszos elmagyarázza a setlocal-t, megpróbálomBele lehet csempészni még ebbe a programba, hogy a legelején is megnézze, hogy fut-e a foobar, és ha nem, akkor lépjen egy figyelmeztető címkére addig, amíg elindítom?
(Mert már jártam úgy, hogy nem indítottam el a foobar-t és úgy összekavar mindent)
-
Paulo81
aktív tag
válasz
Baryka007 #528 üzenetére
Na még egy utolsó lendületet vettem, és már azt elértem, hogy lefut a loop, viszont most nem lép ki!
Eddig az volt a gond, hogy a fute címkére ha ráugrott az asio után, a tasklist | find nem tudott lefutni abszolút, mert az asio címke letiltotta a winmgmt-t, ezért futott le csak egyszer.
Most gyönyörűen mindig lefut az asio, viszont, ha kilépek a foobar-ból, azután is 0 marad! a tasklist | find errorlevel értéke, de miért?Ha ez meg lenne oldva, akkor nagyon jó lenne.
A fute címke kivételével mindenhol a neten talált módszerrel elméletileg lenullázom az errolevel értékét, mert máskor nem jó, ha nem 0. De remélem nem ez van valahogy hatással a fute címkére?
Még majd megpróbálom, hogy külön batch-ből. Mt írjak a külön batch-be, a komplett fute címkét?Most így néz ki a program:
@echo off
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0"devcon disable HDAUDIO\FUNC_01* || cmd /c "exit /b 0"
cmd /c "exit /b 0
devcon enable USB\Class_01 || cmd /c "exit /b 0
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0 || cmd /c "exit /b 0"
cmd /c "exit /b 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011 process -a "foobar2000.exe" 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
process -p "foobar2000.exe" realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo A process allitgatasok utan az errolevel erteke: %errorlevel%
pausecls
echo ALLITSD LE AZ MMCSS-T, ha ok, nyomj meg egy gombot...
pausesc config MMCSS start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az MMCSS utan az errolevel erteke: %errorlevel%
pausecls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute:fute
REM if exist Log.txt DEL Log.txt
REM cmd /c "exit /b 0
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
tasklist | find "foobar2000.exe"
REM tasklist /nh /fi "imagename eq foobar2000.exe"REM if %errorlevel% == 0 echo >>Log.txt fut
REM if %errorlevel% == 1 echo >>Log.txt nemfutecho A FOOBAR VIZSGALAT UTAN az errolevel erteke: %errorlevel%
pause
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vegeREM if %errorlevel% == 0 set valami=2
REM if %errorlevel% == 1 set valami=3
REM if %valami% == 2 goto asio
REM if %valami% == 3 goto vege
REM goto :futeREM FOR /f "tokens=1" %%A IN (Log.txt) do (
REM if %%A == fut goto asio
REm if %%A == nemfut goto vege):asio
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0
sc config Winmgmt start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
net stop Winmgmt || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az asio lefutasa után az errolevel erteke: %errorlevel%
pause
REM set errorlevel=0
REM echo az errorlevel 0-ra valo allitasara valo kiserlet utan
REM echo az errolevel erteke: %errorlevel% (Nem jó módszer)
REM pause
goto fute:vege
echo A VEGERE UGROTTAM!!!!!!!! Az errolevel erteke: %errorlevel%
pause
sc config Winmgmt start= demand
sc config MMCSS start= demand
devcon disable USB\Class_01*
devcon enable HDAUDIO\FUNC_01*
REM net start MMCSS
REM net start Audiosrvexit /b 0
-
Paulo81
aktív tag
válasz
Baryka007 #523 üzenetére
Hát az a helyzet, hogy egyszer lefut az asio-s rész, másodszora már a végére ugrik, de nekem sincs fogalmam, hogy miért. Valami más módszer kell.
Szeretnék még bonyolítani az egészen.
Rögtön indulás után is vizsgálja meg, hogy elindítottam-e a foobar-t. Ha véletlenül nem és úgy akarom futtatni, akkor szólítson fel rá és addig ne induljon el. -
Paulo81
aktív tag
Tehát a lényeg, hiogy ha az asio-s loop hibát is dobna ki, akkor is menjen elölről a loop, amíg be nem záródik a foobar. Remélem érthető.
A set errolevel=0 nem működik.
Még ezzel próbálkoztam netes keresgélés után:
FOR %%A IN (1 10 100) DO SET ERR%%A=0
de nem jó.
Meg az sem, hogy minden parancs után odaírom, hogy > nul, akkor még a parancsok sem működnek normálisan. -
Paulo81
aktív tag
válasz
Baryka007 #517 üzenetére
Na, egy kicsit bonyolódnak a dolgok.Elmondom mit szeretnék:
Az elején kilő egy-két provesst és minden process alacsony prioritású lesz és egy szálon fut, ez OK.
A foobart és az audiodg-exe-t realtime-ra rakja és visszarakja két szálra.Mivel nekem nem kell az MMCSS mert bekavar a hangba főleg ape-nél, ezért értelemszerűen csinálja dolgokat, az audiodg van, hogy nem indul el vagy leáll, ezért mégegyszer megcsinálja. (Azért kell ezt az MMCSS-sel így csinálni, mert a szolgáltatás nem lehet leállítani, mert a hangvégpontépítő és az audio szolgáltatástól függ, tehát rámegyek a folyamatra a feladatkezelőből éa úgy állítom le. Viszont le kell tiltani, hogy ne induljon el még 1x)
Szóval még eddig is remekül működik.Ezután amikor elindítok egy zenét, az asio-t szintén reíltimera kell állítani, de ezt viszont sajnos minden egyes alkalommal meg kell csinálni. Ha leállítom a zenét az asio32host exe is leáll, és legközelebb sajnos nem indul realtime módban. Ezért egy loop-ot szeretnék, ami minden gombnyomásra megcsinálja. (A winmgmt is bekavar a hangba, azért tiltom le, viszont a process.exe normális futásához kell,
)
Na szóval ha külön csak megcsinálom az asio-s loop-ot akkor simán működik, de gondoltam az is épüljön bele, hogy figyelje hogy fut-e a foobar, és ha már bezártam, akkor gombnyomás után hajtsa végre az visszaállító dolgokat a végén.
Szerintem az errorleveles dolog kavar bele a levesbe, mert miközben szereksztem a batch-es és másodszorra elindítom, akkor már ha nem fut a foobar akkor is futónak érzékeli. Valahogy inicializálni kéne az errorlevelt- de eddig nem sikerült.
Hálás lennék, ha átnéznéd, hogy mi a bibi ls kipróbálnád - ha tudod.@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%Gfor /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo asio realtime beállítás minden egyes gombnyomásra
set errorlevel=0
pause
goto fute
:fute
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vege:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmtset errorlevel=0
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start Audiosrv -
Paulo81
aktív tag
@echo off
REM :eleje
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do
echo !!!!!!!!!
REM SET van
REM %van%=%%GREM IF {%van%} EXIST
REM (goto eleje)
REM ELSE (goto vege)
REM :vege
REM echo %van%
pause
Már mindennel próbálkoztam, de a for ciklussal van a baj. Az a vicces, hogy azt egy működő batch fájlból másoltam ki.
A tasklist-es parancsot beírva kézileg is működik, nem értem... :S :S -
Paulo81
aktív tag
Sziasztok!
Szeretnék egy olyan batch file-t ami megnézi, hogy fut-e a foobar és akkor csináln valamit, de ha nem fut, akkor a vége cimkére ugrik és befejeződik.
IF
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"')=truegoto csinald
ELSE goto vege
pause
:vegeEzt tudtam összehozni, de nem működik, szintaktikai hiba. Mit rontottam el?
Új hozzászólás Aktív témák
Hirdetés
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Kivégzi a Firewire-t az új macOS verzió?
- Vigneau interaktív lokálblogja
- Parfüm topik
- Milyen okostelefont vegyek?
- Milyen videókártyát?
- FOTÓS beárazás
- World of Tanks - MMO
- Samsung Galaxy A54 - türelemjáték
- VoLTE/VoWiFi
- További aktív témák...
- Bomba ár! Dell Latitude E6440 - i5-4GEN I 8GB I 320GB I 14" HD I HDMI I Cam I W10 I Garancia!
- BESZÁMÍTÁS! ASUS ProArt Z790-CREATOR WIFI alaplap garanciával hibátlan működéssel
- PlayStation Network Card (PSN) ajándékkártyák, egyenesen a Sony-tól!
- Gombászkönyvek egyben
- Apple iPhone SE 2020 64GB, Yettel függő, 1 Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest