Stránka 1 z 1
CMD - spuštění souboru po ukončení procesu
Napsal: 23 pro 2011 01:32
od don750
Zdravím, chtěl bych nějak udělat to, že když se mi ukončí určitý proces, tak se mi spustí exe soubor.
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 23 pro 2011 09:08
od Uziv00
Pokud myslíš proces jako službu, pak to lze v nastavení této služby. Jinak ve vbs, pochybuji, že by pomocí cmd tohle šlo.
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 23 pro 2011 09:14
od faraon
Možná by šlo vytvořit proces, který by spustil ten tvůj sledovaný proces, a po jeho skončení by provedl požadovanou akci. To by se dalo udělat i jako BAT, s možností testování návratové hodnoty.
Ale pokud jde o už běžící proces, tak bez speciálních nástrojů nemáš ve Windows šanci. Leda v Linuxu, tam na to stačí pár jednoduchých příkazů...
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 23 pro 2011 09:20
od Uziv00
vbs není žádný speciální nástroj - ve windows existuje už od W98. Sám ho používám pro kontrolu běhu služeb.
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 23 pro 2011 09:28
od faraon
To je pravda, ale je to něco navíc, co běžný uživatel nepoužívá. Dal by se v tom udělat třeba prográmek na otevírání a zavírání mechanik, ale v Linuxu mi stačí napsat
eject /dev/hdc;eject /dev/hdd;eject /dev/hdc -t;eject /dev/hdd -t a šuplíky tančí. Záležitost na pár sekund, samotný program eject má 16 KiB

Re: CMD - spuštění souboru po ukončení procesu
Napsal: 23 pro 2011 11:40
od don750
Jde mi pouze o to, že já si souborem .bat spouštím 2 programy po sobě a potom bych ty programy potřeboval zase oba vypnout (když vypnu ten první, tak aby se "vypnul" i ten dodatečný program). Vypnul jsem dal do uvozovek, protože v tomto případě nejde o ukončení procesu, ale znovuspuštění stejného souboru. Abych tu nechodil kolem horké kaše - mám hru, u které je vidět kurzor myši při hraní (nejsem jediný, kdo to tak má). A sehnal jsem si program Nomousy, který umí přes cmd schovat myš. Já jsem to udělal tak, že mám .bat soubor, ve kterém je to nějak takhle:
start C:\...\nomousy.exe /hide
start C:\...\game.exe
A když tento .bat soubor spustím, tak se mi schová ta myš a spustí se hra. Pak hru vypnu a musím ještě najet na zástupce na liště, který má cíl:
C:\...\nomousy.exe /hide
a ten kupodivu myš zase zobrazí (i když by tam mělo být spíše /unhide). Vymyslel jsem to ještě tak, že by šlo napsat:
start C:\...\nomousy.exe /hide
start C:\...\game.exe
pause
start C:\...\nomousy.exe /hide
...potom se mi po vypnutí hry zobrazí CMD (on tam je vlastně celou dobu od spuštění hry, jen je na pozadí) a když stisknu cokoliv, tak se mi zobrazí myš. Nemusí to jít nutně přes CMD. Cílem je, abych jedním kliknutím spustil program (2 programy) a při jeho vypnutí už nemusel na nic dalšího klikat.
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 24 pro 2011 14:07
od Uziv00
Tak to by nemusel být až takový problém..
Kód: Vybrat vše
'Etienn@Script
'pro PChelp
'v 1.0
'Práce s nomousy
Const prikaz1 = "C:\...\nomousy.exe /hide"
Const prikaz2 = "C:\...\game.exe"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run prikaz1, 8, False
WshShell.Run prikaz2, 1, True
WshShell.Run prikaz1, 8, False
Set WshShell = Nothing
Kód zkopíruj do notepadu a ulož pod libovolným jménem a příponou .vbs.
V notepadu musíš zaeditovat cestu k souborům
const prikaz. Cesta musí být
zadána naprosto přesně, jinak skript skončí chybou.
Po uložení už stačí jen poklepat.

koukám že skript na vysouvání CD mechaniky v LInuxu je ti celkem na nic

Re: CMD - spuštění souboru po ukončení procesu
Napsal: 24 pro 2011 15:24
od faraon
Máš pravdu, ono to vlastně k ničemu není, je to jen taková parádička na kterou windousáci zírají, protože si ani nedovedou představit že by něco takového šlo

Využití je jinde.
Mohl bych například použít tohle:
nomousy -hide & ; game
nomousy -hideKde první řádek spustí současně nomousy (na pozadí) a game (na popředí), a po ukončení game se opět zavolá nomousy. Tohle se v CMD udělat nedá. Stejně tak jednoduše jde zjistit jestli daná aplikace běží, případně jí jedním příkazem poslat povel k ukončení.
Těch zdánlivě zbytečných parádiček je víc, třeba že zapnu starý modem a z počítače si jedním příkazem prozváním mobil, na to kámoši koukali už když jsem to dělal z holého DOSu

Re: CMD - spuštění souboru po ukončení procesu
Napsal: 24 pro 2011 17:10
od Uziv00
No, já z parádiček vyrost. Ale jinak Linux mám rád (ostatně si nedokážu představit, že by moje síťové úložiště běželo na něčem jiném) a Perl je něco podobného jako vbs. A proto jsem se naučil - či spíše se pořád učím vbs, protože je to skutečně dobrý nástroj. Osobně si myslím, že je jen na škodu, že většina windows adminů ho neumí použít a zůstávají u bat souborů. Na druhou stranu si nemyslím, že by Perl nebo vbs bylo něco, co by mělo zajímat obyčejné uživatele. Jsem ale přesvědčen, že k dotazu tohoto tématu Linuxový kód otvírání a zavírání CD mechaniky skutečně nepatří. Tož tak.

A jen k upřesnění - parametr /hide u programu nomousy znamená skrýt kurzor myši, nikoli skrýt okno.
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 24 pro 2011 18:58
od don750
Aha, nečekaná chyba. Váš skript funguje nádherně, ale pouze pokud není v názvu složky tečka. A bohužel hra má v názvu složky, ve které je hra, tečku a přejmenovat to nejde, protože pak hra nepude. Nezkoušel jsem to, ale myslím si to, protože na to umístění odkazují nejen zástupci. Cestu jsem zkopíroval z okna, kde jsem měl složku otevřenou, abych se vyvaroval překlepu a za cestu jsem připsal název spouštěcího souboru exe. Ještě jsem to zkontroloval a cesta je správně. Když chci skript spustit, tak to hodí chybu a odkazuje to na řádek 11, ve kterém je právě ten prikaz 2. Zkusil jsem zadat cestu k úplně jinému programu na zkoušku a s tím mi to funguje. Uvozovky tam jsou. Dodržel jsem malá a velká písmena.
--- Doplnění předchozího příspěvku (24 Pro 2011 19:07) ---
Ještě jsem zjistil, že když zadám cestu do příkazového řádku (start C:\....\game.exe - ale cestu zadám samozřejmě konkrétně, a né takhle), tak to také hodí chybu a když tam zadám cestu k jinému programu, tak to jde a dělám to obojí stejně, takže mezi klávesnicí a monitorem snad chyba není. Myslím, že jsem měl podobný problém i při vytváření toho bat souboru a tam jsem to vyřešil tak, že jsem tam zadal postupné otevírání příkazem CD a složku s tečkou jsem dal do uvozovek. A funguje to. Ale při vypnutí hry to samozřejmě myš nezobrazí.
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 25 pro 2011 09:54
od Uziv00
Hm, nejsem si teď jist na 100% ale mohlo by pomoci ztrojit (nebo zčtveřit) uvozovky. Pak by řádek s prikaz2 vypadal takto:
Kód: Vybrat vše
Const prikaz2 = """C:\...\game.exe"""
nebo
Kód: Vybrat vše
Const prikaz2 = """"C:\...\game.exe""""
Anebo místo toho upravit řádek 11 takto:
Kód: Vybrat vše
WshShell.Run """" & prikaz2 & """", 1, True
Už si to nepamatuji přesně, tak vyzkoušej.
Další možnost je, pokud už máš na ploše zástupce k tomu game.exe, tak startovat game přes tohoto zástupce. To by se pak ten skript musel upravit.
Re: CMD - spuštění souboru po ukončení procesu
Napsal: 28 pro 2011 15:06
od don750
Paráda, už to funguje. Díky moc za rady!