PDA

View Full Version : Come faccio con un collegamento a fare partire piu' programmi?


caosss
08-02-2004, 20:30
:confused:

ATi7500
08-02-2004, 20:34
dovresti costruire un file batch


bYeZ!

caosss
08-02-2004, 22:20
e come si fa?????? ad esempio.......se io voglio far partire il notepad e paint....cosa devo fare??????????????????????????

caosss
09-02-2004, 11:37
daiiiiiiiii come si fa?????????????

nicscics
09-02-2004, 13:00
Clicca qui (http://www.fast-service-informatica.com/apri_in_sequenza.htm)

Manp
11-02-2004, 00:00
Originariamente inviato da nicscics
Clicca qui (http://www.fast-service-informatica.com/apri_in_sequenza.htm)

appunto, nel link c'è scritto come far aprire più programmi in modo sequenziale...

ma converrai che c'è una bella differenza tra contemporaneamente e sequenzialmente!!!

infatti in quel modo (che poi usare i comando start /w è inutile, anche se non ci metti nessun comando davanti l'effetto è il medesimo) prima viene aperto un programma, quando viene chiuso questo viene aperto il successivo...

:)

nicscics
11-02-2004, 09:19
Originariamente inviato da Manp
appunto, nel link c'è scritto come far aprire più programmi in modo sequenziale...

ma converrai che c'è una bella differenza tra contemporaneamente e sequenzialmente!!!

infatti in quel modo (che poi usare i comando start /w è inutile, anche se non ci metti nessun comando davanti l'effetto è il medesimo) prima viene aperto un programma, quando viene chiuso questo viene aperto il successivo...

:)

Allora fai un bel file batch e risolvi la situazione. Mi sembra semplice.
..................................................................
@echo off
echo _______________________
echo Apertura Corel Photo Paint...

C:\Programmi\Corel\Graphics10\Programs\photopnt.exe
echo Attendere...

echo _______________________
echo Apertura Notepad
C:\Windows\Notepad.exe

...................................................................

ecc. ecc.

P.S.

Se sai tutto... perché chiedi? Anzi... pretendi? Noi siamo qui per dare una mano, non per farci sbeffeggiare! ;)

Manp
11-02-2004, 15:32
non sò tutto, tantomeno avevo o vuolevo avere un tono polemico e ancor meno ho preteso qualcosa... sinceramente non mi sembrava proprio che dalle mie parole si potesse evincere nulla di ciò! :confused:
tant'è che ho chiuso il messaggio con un bel sorriso :)
rileggendo il messaggio non mi pare di trovarci nulla di scortese o strafottente... e soprattutto non mi pare di aver sbeffeggiato nessuno! :) forse sei stato tu un po' troppo permaloso :sofico: :p

se cmq ho dato ad intendere ciò me ne scuso... ma ti assicuro che non era mia intenzione ;)

quello che volevo sapere (così come, credo, l'autore del thread) è se c'è un modo per avviare due programmi contemporaneamente e NON sequenzialmente (mi rifiuto di credere che nn ci sia anche se io non lo conosco, ma tutto è possibile :D)...

cia :)

Yoghurt
11-02-2004, 16:29
Originariamente inviato da nicscics
Allora fai un bel file batch e risolvi la situazione. Mi sembra semplice.

Così si apre il seguente programma solo quando chiudi il precedente...

nicscics
11-02-2004, 21:47
No.

nicscics
11-02-2004, 21:54
Originariamente inviato da Manp
non sò tutto, tantomeno avevo o vuolevo avere un tono polemico e ancor meno ho preteso qualcosa... sinceramente non mi sembrava proprio che dalle mie parole si potesse evincere nulla di ciò! :confused:
tant'è che ho chiuso il messaggio con un bel sorriso :)
rileggendo il messaggio non mi pare di trovarci nulla di scortese o strafottente... e soprattutto non mi pare di aver sbeffeggiato nessuno! :) forse sei stato tu un po' troppo permaloso :sofico: :p

se cmq ho dato ad intendere ciò me ne scuso... ma ti assicuro che non era mia intenzione ;)

quello che volevo sapere (così come, credo, l'autore del thread) è se c'è un modo per avviare due programmi contemporaneamente e NON sequenzialmente (mi rifiuto di credere che nn ci sia anche se io non lo conosco, ma tutto è possibile :D)...

cia :)

Ti chiedo scusa. Pace.
;) :)

Manp
11-02-2004, 22:26
Originariamente inviato da nicscics
Ti chiedo scusa. Pace.
;) :)

e che ti devo dire, non c'era nemmeno bisogno di chiedermi scusa!!! :D :D :D :)

cmq che tu sappia esiste un modo per far partire contemporaneamente 2 programmi o no? :confused:

:)

nicscics
11-02-2004, 23:15
Il comando batch postato prima non consente l'attesa di apertura di un programma per aprire il successivo, per cui le applicazioni dovrebbero aprire in rapida successione.

Yoghurt
11-02-2004, 23:38
Guarda che ti sbagli... I comandi batch vengono eseguiti uno per volta solo quando il precedente è terminato. Quindi x aprire il secondo programma devi chiudere il primo. Quindi non solo non vengono eseguiti insieme, ma nemmeno restano aperti entrambi...

echo apertura notepad
c:\windows\notepad.exe
echo apertura regedit
c:\windows\regedit.exe

Dopo la prima riga si apre il notepad e il batch va in pausa. Chiudendo il notepad si apre regedit e il batch va di nuovo in pausa. Chiudendo regedit il batch termina.

Provare x credere ;)

Manp
12-02-2004, 10:45
Originariamente inviato da Yoghurt
Guarda che ti sbagli... I comandi batch vengono eseguiti uno per volta solo quando il precedente è terminato. Quindi x aprire il secondo programma devi chiudere il primo. Quindi non solo non vengono eseguiti insieme, ma nemmeno restano aperti entrambi...

echo apertura notepad
c:\windows\notepad.exe
echo apertura regedit
c:\windows\regedit.exe

Dopo la prima riga si apre il notepad e il batch va in pausa. Chiudendo il notepad si apre regedit e il batch va di nuovo in pausa. Chiudendo regedit il batch termina.

Provare x credere ;)

vero!!! cmq ho trovato il modo


@echo off
echo _______________________
echo Apertura Paint
start %SystemRoot%\System32\mspaint.exe
echo Attendere...

echo _______________________
echo Apertura Notepad
start %SystemRoot%\Notepad.exe


si trattava semplicemente di togliere il parametro /w al comando start nell'esempio del link postato da nicscics...

aggiungendo /w il batch si comporta come descritto da Yoghurt, mentre togliendo quel parametro i due programmi si aprono contemporaneamente...

alla fine ci siamo arrivati :D :D :D :D

:)

Manp
12-02-2004, 10:58
Apre una finestra a parte per eseguire un programma o un comando specifico.

START ["titolo"] [/percorso] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [comando/programma]
[parametri]


"titolo" Testo da visualizzare nella barra del titolo della finestra.
percorso Directory di avvio
B Avvia l'applicazione senza creare una nuova finestra.
L'applicazione ignora il controllo ^C. Finché l'applicazione
non riattiverà autonomamente ^C, ^INTERR sarà l'unico
modo per interrompere l'applicazione.

I Il nuovo ambiente sarà l'ambiente originale trasmesso a
cmd.exe e non l'ambiente corrente.
MIN Avvia la finestra ridotta a icona.
MAX Avvia la finestra ingrandita.
SEPARATE Avvia programmi Windows 16 bit in uno spazio di memoria separato.
SHARED Avvia programmi Windows 16 bit in uno spazio di memoria condivisa.

LOW Avvia l'applicazione nella classe di priorità IDLE.
NORMAL Avvia l'applicazione nella classe di priorità NORMAL.
HIGH Avvia l'applicazione nella classe di priorità HIGH.
REALTIME Avvia l'applicazione nella classe di priorità REALTIME.
ABOVENORMAL Avvia l'applicazione nella classe di priorità ABOVENORMAL
BELOWNORMAL Avvia l'applicazione nella classe di priorità BELOWNORMAL
WAIT Avvia l'applicazione e ne attende la terminazione.
comando/programma
Se è un comando interno cmd o un file batch, il processore
dei comandi verrà eseguito con l'opzione /K per cmd.exe.
La finestra non sarà quindi chiusa dopo l'esecuzione del
comando.

Se non è un comando interno cmd o un file batch, si tratta
di un programma che sarà eseguito come applicazione in una
finestra o come applicazione di console.

parametri Questi sono i parametri passati al comando/programma.


Se le estensioni ai comandi sono abilitate, l'esecuzione di comandi dall'esterno

attraverso la riga di comando o il comando START è cambiata come segue:

i file non eseguibili possono essere richiamati grazie alla associazione
digitando il nome del file come un normale comando. Esempio: WORD.DOC
avvierà l'applicazione associata con l'estensione di file .DOC.
Vedere i comandi ASSOC e FTYPE per informazioni su come creare le
associazioni dall'interno di uno script di comandi.

Se si esegue un'applicazione con GUI a 32 bit, CMD.EXE
non attende la terminazione dell'applicazione prima di ritornare al Prompt
dei comandi. Questo non accade se si sta eseguendo da uno script di comandi.



Se nella riga di comando la prima parola è CMD, senza un'estensione o
un percorso, CMD è sostituito con il valore della variabile COMSPEC,
per evitare di utilizzare CMD.EXE presente nella
directory corrente .

Se nella riga di comando la prima parola NON contiene un'estensione,
CMD.EXE utilizza il valore della variabile d'ambiente PATHEXT
per determinare quali estensioni cercare e in quale ordine.
Il valore predefinito per la variabile PATHTEXT è:


.COM;.EXE;.BAT;.CMD

La sintassi è la stessa della variabile PATH, il carattere
utilizzato per separare i vari elementi è il punto e virgola.

Durante la ricerca di un eseguibile, se non c'è alcun file corrispondente
con le estensioni previste, viene controllato se il nome, senza nessuna
estensione, corrisponde a quello di una directory; se è vero, il comando START
avvia Esplora risorse a partire dal percorso individuato.
Se eseguito dalla riga di comando, è equivalente all'esecuzione di CD /D
da quel percorso.

questo è l'help relativo al comando start... il parametro /w stà appunto per wait... insomma il batch aspetta la fine dall'esecuzione del programma chiamato da start per continuare l'esecuzione... :D

:)

caosss
12-02-2004, 11:14
evviva!!!!! quindi alla fin fine si fa come ha detto nicsic senza w...thx a tutti! ;)

caosss
12-02-2004, 11:18
scusate ma poi per non fare aprire quella finestra di dos cosa ci devo mettere??? e' una figata sta storia del batch...non li avevo mai sentiti! :D

nicscics
12-02-2004, 11:19
Originariamente inviato da Manp
vero!!! cmq ho trovato il modo


@echo off
echo _______________________
echo Apertura Paint
start %SystemRoot%\System32\mspaint.exe
echo Attendere...

echo _______________________
echo Apertura Notepad
start %SystemRoot%\Notepad.exe


si trattava semplicemente di togliere il parametro /w al comando start nell'esempio del link postato da nicscics...

aggiungendo /w il batch si comporta come descritto da Yoghurt, mentre togliendo quel parametro i due programmi si aprono contemporaneamente...

alla fine ci siamo arrivati :D :D :D :D

:)

Infatti, nel mio post, il comando W non c'è.
:eek:

nicscics
12-02-2004, 11:24
Originariamente inviato da caosss
scusate ma poi per non fare aprire quella finestra di dos cosa ci devo mettere??? e' una figata sta storia del batch...non li avevo mai sentiti! :D

Crei un collegamento al file batch e dalle proprietà gli dai: "Avvia ridotto ad icona" e "Chiudi all'uscita".

Manp
12-02-2004, 12:05
Originariamente inviato da nicscics
Infatti, nel mio post, il comando W non c'è.
:eek:

nel link che hai postato per primo viene usato il comando start /w
http://www.fast-service-informatica.com/apri_in_sequenza.htm

nel batch che hai postato dopo non c'è il /w, ma non c'è nemmeno il comando start! :D

eccolo:
@echo off
echo _______________________
echo Apertura Corel Photo Paint...

C:\Programmi\Corel\Graphics10\Programs\photopnt.exe
echo Attendere...

echo _______________________
echo Apertura Notepad
C:\Windows\Notepad.exe

che equivale a questo:

@echo off
echo _______________________
echo Apertura Corel Photo Paint...

start /w C:\Programmi\Corel\Graphics10\Programs\photopnt.exe
echo Attendere...

echo _______________________
echo Apertura Notepad
start /w C:\Windows\Notepad.exe


in questo modo i programmi vengono avviati sequenzialmente, non contemporaneamente ;)

se non si mette il comando start prima del percorso del programma da avviare questo viene avviato e il batch rimane in attesa che venga chiuso per avviare il programma successivo... se si usa il comando start /w succede la stessa cosa

se si usa il comando start senza il parametro /w i due programmi vengono esegiuti contemporaneamente e alla fine la finestra del prompt viene chiusa automaticamente!!! ;)

se si fa un batch tipo questo (nomefile.bat):
@echo off
echo Apertura Paint...
start /max %SystemRoot%\System32\mspaint.exe

echo Apertura Notepad...
start /max %SystemRoot%\notepad.exe

vengono avviati i due programmi contemporaneamente (/max per vedere la finestra a tutto schermo) e poi la finestra del prompt dei comandi si chiude da sola senza bisogno di fare nulla ;)

:)

nicscics
12-02-2004, 12:35
Quando non c'è il comando w, non serve il comando start :D

Yoghurt
12-02-2004, 13:05
Allora insisti :p

Riassunto:

1. Senza start: Programmi eseguiti uno alla volta alla chiusura del precedente
2. start /w: Programmi eseguiti uno alla volta alla chiusura del precedente
3. start: Programmi eseguiti insieme

Il caso che ci interessa è il 3. ;)

nicscics
12-02-2004, 13:50
:D

Manp
12-02-2004, 15:59
Originariamente inviato da Yoghurt
Allora insisti :p

Riassunto:

1. Senza start: Programmi eseguiti uno alla volta alla chiusura del precedente
2. start /w: Programmi eseguiti uno alla volta alla chiusura del precedente
3. start: Programmi eseguiti insieme

Il caso che ci interessa è il 3. ;)

ecco :)

caosss
15-02-2004, 17:43
per caso sapete dove trovare una guida per creare sti batch???

Yoghurt
15-02-2004, 21:21
Dal prompt dei comandi scrivi "help" (+ invio) x ottenere la lista completa dei comandi. "help" "tipo di comando" (+ invio) x la descrizione delle opzioni sul singolo comando.

caosss
16-02-2004, 23:06
non va il metodo "help"....io ho win 98 se.......

Ciaba
19-10-2004, 19:30
...finalmente una discussione interessante...Avrei il problema di mettere tre programmi in sequenza-contemporanea....cioè ne avvio uno parte il secondo e quindi il terzo....e avrei pensato a una struttura così:

@echo off
echo _______________________
echo Apertura Notepad...

start C:\Windows\Notepad.exe(1)
echo Attendere...

echo _______________________
echo Apertura Notepad
start C:\Windows\Notepad.exe(2)


echo _______________________
echo Apertura Notepad
start C:\Windows\Notepad.exe(3)

...che dite? errori di sintassi?...
p.s. ovviamente ho messo notepad a tutte le stringhe per semplificare l'esempio.

nicscics
19-10-2004, 19:45
Aggiungi /wait dopo Start.

caosss
19-10-2004, 20:13
a proposito.....che roba e' echo?

nicscics
19-10-2004, 20:18
ECHO o echo... serve ad indicare al file batch che il testo va visualizzato.

Esempio:

ECHO Installing DirectX9c...

Il corpo del testo va preceduto dal comando:

@echo off

in modo tale che i comandi veri e propri non vengano visualizzati.

Ciaba
19-10-2004, 20:30
Originariamente inviato da nicscics
Aggiungi /wait dopo Start.

...ma sei sicuro?...sopra nn dicevano che se si mette /w il programma successivo aspetta la fine di quello precedente?... :confused:

p.s. ma perché echo OFF ...nn sarebbe meglio echo ON per avviare i programmi? (l'ho detta?...:D )

nicscics
19-10-2004, 20:37
Wait imposta l'attesa di fine esecuzione, per poi avviare il successivo.

Ciò non toglie che, in alcuni frangenti non funziona adeguatamente... comunque il comando serve a quanto ribadito.

Ciaba
19-10-2004, 20:42
Originariamente inviato da nicscics
Wait imposta l'attesa di fine esecuzione, per poi avviare il successivo.

Ciò non toglie che, in alcuni frangenti non funziona adeguatamente... comunque il comando serve a quanto ribadito.

...ok....Se posso abusare della tua gentilezza però ti chiederei ancora una cosa....Mettiamo che poi volessi fare l'operazione contraria...e cioé chiudere un programma e a ruota gli altri due....come cambierebbero i comandi per quest'altro file?

nicscics
19-10-2004, 20:50
E' presto detto...
Per avviare più programmi sequenzialmente in Windows, create un file di testo con Notepad, che contenga le seguenti stringhe:

start /w <program1.exe>
start /w <program2.exe>
start /w <program3.exe>
<stringhe aggiuntive se necessarie>

Salvate il file di testo con l'estensione .bat (estensione per Win9X) o .cmd.

Per esempio:

start /w calc.exe
start /w notepad.exe


Nell'esempio sopra riportato, dopo aver salvato il file, un click sull'icona relativa causerà l'apertura della calcolatrice. Alla chiusura di questa verrà aperto automaticamente il blocco note di Windows.

Adottando questo metodo, i programmi contenuti nel file batch verranno inizializzati in maniera sequenziale. Il programma successivo verrà avviato solo alla chiusura del precedente.


Se non operi manualmente alla chiusura, prova a postporre il comando Kill, ma non credo funzioni coerentemente, poiché il prog verrebbe aperto e subito chiuso.

Ciaba
21-10-2004, 10:44
...chi sa come si imposta la chiusura col meccanismo dei batch?!!!

nicscics
21-10-2004, 12:45
Originariamente inviato da Ciaba
...chi sa come si imposta la chiusura col meccanismo dei batch?!!!

EXIT

Manp
21-10-2004, 14:41
Originariamente inviato da caosss
scusate ma poi per non fare aprire quella finestra di dos cosa ci devo mettere??? e' una figata sta storia del batch...non li avevo mai sentiti! :D

visto che il thread è tornato in auge ne approfitto per postare un metodo per fare le stesse identiche cose che si fanno con i batch ma in Visual Basic Script... che ha il vantaggio di essere un linguaggio più "completo" e comodo (chi ha un minimo di esperienza in Visual Basic si accorgerà che si può fare praticamente tutto)

basta creare un file "nomefile.vbs" e copiare quanto segue:
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "%windir%\notepad.exe"
WshShell.Run "%windir%\system32\mspaint.exe"

per far si che i programmi blocco note e paint vengano eseguiti contemporanamente

in questo modo invece:
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "%windir%\notepad.exe", , true
WshShell.Run "%windir%\system32\mspaint.exe"

verrà eseguito prima il blocco note e quando questo verrà terminato, verrà lanciato paint

ovviamente come primo parametro di WshShell.Run (quello tra virgolette) è possibile passare un qualunque eseguibile o comando (con tanto di parametri ovviamente) che sia possibile eseguire da prompt dei comandi

in Windows 2000 e XP qusto procedimento non causa l'apertura di nessuna finestra del prompt (in quanto l'interprete predefinito degli script è WScript), invece in Windows Server 2003 o nei casi in cui l'interprete predefinito non si WScript, essendo l'interprete predefinito CScript (che genera l'output in una command windows), verrà aperta una finestra del prompt...

per evitare che accada è sufficiente fare:

Start -> Esegui -> cmd -> OK

al prompt:
wscript //H:WScript
Invio


che imposta wscript come interprete predefinito ;)

:)

speck
21-10-2004, 14:49
ho creato i file batch di prima (non mi serve ma divertente : tanto sono qua a non fare nulla ) ma come si crea un file "nomefile.vbs?

io non ne sono nulla assolutamente !!!

Manp
21-10-2004, 14:50
dimenticavo

WshShell.Run "%windir%\notepad.exe", x , true

per decidere lo stato della finestra al momento dell'apertura basta sostituire ad x uno tra i valori:

0 Hides the window and activates another window.
1 Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.
2 Activates the window and displays it as a minimized window.
3 Activates the window and displays it as a maximized window.
4 Displays a window in its most recent size and position. The active window remains active.
5 Activates the window and displays it in its current size and position.
6 Minimizes the specified window and activates the next top-level window in the Z order.
7 Displays the window as a minimized window. The active window remains active.
8 Displays the window in its current state. The active window remains active.
9 Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.
10 Sets the show state based on the state of the program that started the application.

:)

Manp
21-10-2004, 14:54
Originariamente inviato da speck
ho creato i file batch di prima (non mi serve ma divertente : tanto sono qua a non fare nulla ) ma come si crea un file "nomefile.vbs?

io non ne sono nulla assolutamente !!!

apri Blocco Note

File -> Salva con nome -> "nomefile.vbs" -> Salva

mi raccomado scrivi ANCHE le virgolette

:)

nicscics
21-10-2004, 18:41
Originariamente inviato da Manp
visto che il thread è tornato in auge ne approfitto per postare un metodo per fare le stesse identiche cose che si fanno con i batch ma in Visual Basic Script... che ha il vantaggio di essere un linguaggio più "completo" e comodo (che ha un minimo di esperienza in Visual Basic si accorgerà che si può fare praticamente tutto)

basta creare un file "nomefile.vbs" e copiare quanto segue:
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "%windir%\notepad.exe"
WshShell.Run "%windir%\system32\mspaint.exe"

per far si che i programmi blocco note e paint vengano eseguiti contemporanamente

in questo modo invece:
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "%windir%\notepad.exe", , true
WshShell.Run "%windir%\system32\mspaint.exe"

verrà eseguito prima il blocco note e quando questo verrà terminato, verrà lanciato paint

ovviamente come primo parametro di WshShell.Run (quello tra virgolette) è possibile passare un qualunque eseguibile o comando (con tanto di parametri ovviamente) che sia possibile eseguire da prompt dei comandi

in Windows 2000 e XP qusto procedimento non causa l'apertura di nessuna finestra del prompt (in quanto l'interprete predefinito degli script è WScript), invece in Windows Server 2003 o nei casi in cui l'interprete predefinito non si WScript, essendo l'interprete predefinito CScript (che genera l'output in una command windows), verrà aperta una finestra del prompt...

per evitare che accada è sufficiente fare:

Start -> Esegui -> cmd -> OK

al prompt:
wscript //H:WScript
Invio


che imposta wscript come interprete predefinito ;)

:)

Ottimo! ;)