View Full Version : Lancaiare programmi in sequenza... aiuto
Salve
io non so praticamente niente di programmazione... e dovrei creare una specie di programma che mi permettta di lanciare una serie di altri programmi in sequenza cioè che quando un programma ha finito le sue operazioni, ne venga lanciato un altro e cosi via.
es.
prog1
prog2
prog3
prog...
mi hanno detto che si può fare in dos con un file bat. ma non so come fare.
qualcuno mi può aiutare?
grazie
Semplicemente crei un file di testo con notepad con questo contenuto:
@echo off
prog1
prog2
prog3
Poi lo chiudi e lo rinomini come nomechevuoi.bat e poi lo esegui...
ok
e che cosa sarebbe @echo off
devo mettergli su il percorso dei singoli file? lo chiedo perche devo mettere tutto su un cd.
Dato che devo lanciare i tool removal e devo continuamente aggiornarre il cd volevo sapere se dovevo contiunamente creare un nuovo file o se era possibile creare un comando che mi lanci i tool che aggiungo in seguito...
non so magari rinominando i file con un numero progressivo...
come posso fare che si auto chiudano i log che vengono visualizzati alla fine di ogni tool?
Questo è opzionale, anche se non si fa è lostesso... sarebbe solo una ottimizzazione:
Vorrei fare in modo che mi si fermi l'avvio dei vari tool sucessivi quando uno di questi ha rilevato la presenza di un virus e lo ha eliminato.
grazie
Se fai un CD multisessione puoi semplicemente sovrascrivere il file vecchio con quello nuovo...
Devi mettere il percorso relativo rispetto alla posizione dove si trova l'eseguibile...
Se il bat sta in f:\ e gli eseguibili in f:\exe\ allora devi scrivere nel bat:
exe\prog1
Riguardo alla chiusura dei log...dipende da come sono realizzati questi programmi...necessitano la pressione del tasto invio ?
Per la rilevazione dei virus...
Mettere la @ davanti ad una riga significa che la riga nond eve essere visualizzata (altrimenti ogni riga viene visualizzata prima di essere eseguita)...
"echo off" disattiva la visualizzazione di tutte le righe seguenti (fino alla fine o fino ad un "echo on")...
In pratica "@echo off" disattiva la visualizzazione delle istruzioni ;)
Il comando ECHO può essere usato anche per stampare del testo:
echo Sto iniziando la scansione...
Inoltre credo che ogni removal tool setti l'errorlevel... L'errorlevel è in pratica un valore che ogni progrmama lanciato ritorna la sistema operativo...
Guarda qui per sapere come controllare l'errorlevel (per vedere l'errorlevel ritornato in caso di rilevazione di virus stampa l'errorlevel con ECHO ;))...
Guarda qui per saperne di più...
http://labmice.techtarget.com/articles/batchcmds.htm
grazie mille per l'aiuto.
in automatico come posso fare per chiudere i log?
grazie
Ma quali operazioni si devono fare per chiudere i log ? Bisogna premere invio ?
si preme il tasto ok o invio.
poi ti chiede se vuoi connetterti per scaricare la patch o per avere maggiori informazioni. e li gli devi dare si o no.
a me interesserebbe anche solo il log se è troppo incasinato chiudere la seconda finestra.
se vuoi a questo indirizzo c'e ne è uno
http://securityresponse.symantec.com/avcenter/FxNetsky.exe
grazie
Aspetta...queste sono applicazioni Windows...è un progrlam allora...perchè le scansioni aprtirebbero tutte assieme...
Comunque se scrivi FxNetsky.exe /? ti appare l'help e ci sono vari comandi che possono tornare utili... L'opzione /s anche se fa tutto senza l'intervento dell'utente (e senza visualizzare finestre) non permette di lanciare i programmi in sequenza...
Se vuoi usare removal tool da linea di comando puoi usare quelli di F-Secure: http://www.f-secure.com/download-purchase/tools.shtml
Purtroppo per il NetSky non ne hanno...
Originariamente inviato da cionci
Aspetta...queste sono applicazioni Windows...è un progrlam allora...perchè le scansioni aprtirebbero tutte assieme...
Comunque se scrivi FxNetsky.exe /? ti appare l'help e ci sono vari comandi che possono tornare utili... L'opzione /s anche se fa tutto senza l'intervento dell'utente (e senza visualizzare finestre) non permette di lanciare i programmi in sequenza...
Se vuoi usare removal tool da linea di comando puoi usare quelli di F-Secure: http://www.f-secure.com/download-purchase/tools.shtml
Purtroppo per il NetSky non ne hanno...
Scusa non ho capito... vuoi dire che non posso lanciare questi programmi in sequenza... cioè quando uno finisce l'altro inizia?!?
e perchè non si può?
c'è un modo?
L'estensione "/s" la devo mettere sempre dopo l'estensione del programma, cosi non mi appaiono finestre, giusto????
grazie
p.s. scusa la mia ignoranza
Originariamente inviato da peler
Scusa non ho capito... vuoi dire che non posso lanciare questi programmi in sequenza... cioè quando uno finisce l'altro inizia?!?
e perchè non si può?
c'è un modo?
L'estensione "/s" la devo mettere sempre dopo l'estensione del programma, cosi non mi appaiono finestre, giusto????
Così non appaiono le finestre...
Sì...quel genere di patch non puoi applicarle in sequenza perchè l'istruzione successiva viene effettuata subito dopo aver lanciato la prima (prova dalla shell e vedrai che ritorna subito al prompt)...
Esatto i batch di dos lanciano un programma dopo l'altro ma non ne controllano il funzionamento. Potresti farti un programma in un qualche linguaggio, ma se non ne conosci la vedo dura. Forse il più semplice da imparare è il delphi e puoi fare esattamente quello che hai chiesto (che cmq puoi fare anche in visual basic, vc++, ecc.).
Di sicuro non puoi pretendere di riuscire a farlo al volo
Ciao, McK
texerasmo
24-05-2004, 10:06
Option Explicit
' RikShell - by Rik 8/5/98
' Come funzione Shell, ma il programma VB resta in attesa che il programma lanciato termini.
Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, _
lpExitCode As Long) As Long
Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400
Function RikShell(exe As String, Optional WinStyle) As Integer
Dim processid As Long
Dim hProcess As Long
Dim exitcode As Long
Dim parm As Integer
' Controllo il parametro opzionale finestra
Select Case VarType(WinStyle)
Case vbEmpty, vbNull, vbError
parm = vbNormalFocus
Case vbLong, vbInteger, vbSingle, vbDouble
parm = WinStyle
Case Else
parm = vbNormalFocus
End Select
' Prelevo l'ID del processo lanciato
processid = Shell(exe, parm)
' Creo un Handle per quel processo
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, processid)
Do
' Controllo ripetutamente che termini
Call GetExitCodeProcess(hProcess, exitcode)
' Lascio libero il sistema di processare le altre applicazioni
DoEvents
Loop While (exitcode = STILL_ACTIVE)
CloseHandle (hProcess)
End Function
salva questo come modulo in vb
poi....
RikShell ("tuo1.exe")
RikShell ("tuo2.exe")
RikShell ("tuo3.exe")
partono in sequena rispettando che il processo precedente sia finito
grazie mille... ma una domanda dove devo incollare tutto questo codice?
RikShell ("tuo1.exe")
RikShell ("tuo2.exe")
RikShell ("tuo3.exe")
mi portresti fare un esempio.... non ho capito dove devo scrivere il nome del prog da eseguire... e dove devo li devo scrivere
grazie
texerasmo
24-05-2004, 10:35
E visual basic ..
crea un modulo
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.