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 :wink:

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.
:wink: koukám že skript na vysouvání CD mechaniky v LInuxu je ti celkem na nic :wink:

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 :lol: Využití je jinde.
Mohl bych například použít tohle:

nomousy -hide & ; game
nomousy -hide


Kde 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 :wink:

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. :wink:
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!