vorrei creare un file batch che richiami un'altro programma.
Come posso fare con visual basic?
vorrei creare un file batch che richiami un'altro programma.
Come posso fare con visual basic?
Intendi creare il file batch direttamente da un'applicazione realizzata con Visual Basic?Originariamente inviato da depasoft
vorrei creare un file batch che richiami un'altro programma.
Come posso fare con visual basic?
Specifica la versione di VB che utilizzi... VB6, VB.NET, ...?
Ciao!![]()
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Ti basta scriverlo come fai con i file sequenziali:
poi lo lanci con Shellcodice:Open "C:\MioBatch.bat" For Append As #1 Print #1, "@ECHO OFF" Print #1, "REM questo è un commento !" Print #1, "ECHO." Print #1, "ECHO Batch avvio applicazione" Print #1, "PAUSE" Print #1, "ECHO." Print #1, "REM *** Lancia il programma... ***" Print #1, "C:\AltroProgramma.exe" Print #1, "Exit" Close #1
Puoi usare vbHide al posto di vbNormalFocus per lanciare il batch senza che il prompt sia visualizzato. In tal caso però evita di usare il comando PAUSE.codice:Shell "C:\MioBatch.bat", vbNormalFocus
Se ti interessa sincronizzare l'esecuzione ddel batch, nel caso il tuo codice debba rimanere in attesa fino a quando l'applicazione lanciata non viene chiusa, puoi utilizzare questa funzioncina.
da richiamare così:codice:' Sub ShellSync(ByVal cmdLine As String, ByVal WindowStyle As VbAppWinStyle) ' Esegue Shell sincronizzato Dim d As Double d = Shell(cmdLine, WindowStyle) Ciclo: ' Ciclo di attivazione dell'applicazione ' shelled, termina alla chiusura dell'applicazione On Error GoTo ErrOut AppActivate d, True GoTo Ciclo ErrOut: End Sub
Ciao ciaocodice:ShellSync "C:\MioBatch.bat", vbNormalFocus MsgBox "Applicazione terminata !"
Simo
Toglimi un dubbio
Perchè dichiari come double la variabile che conterrà il percorso?
Perche' la funzione shell ritorna l'ID del processo che e' un numero.
Saluti.
Esattamente per questo !Perche' la funzione shell ritorna l'ID del processo che e' un numero.
Fin qui ci siamo.
Ma ciò che ritorna è un numero a doppia precisione?
L'argomento ritornato e' il numero univoco del processo legato all'esecuzione della funzione shell ed e' un numero che probabilmente ha bisogno di parecchie cifre per garantire l'univocita' del processo. Inoltre visto che VB non e' fortemente tipato non farei molto caso a questo aspetto.
Saluti.
(
Comunque per renderti conto meglio di cio' puoi fare:
msgbox(shell("... file da eseguire ...", modalita'))
per visualizzare il valore tornato da shell
)
tutte le funzioni di sistema in un sistema a 32 bit ritornano esclusivamente interi a 32 bit
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
Ecco, lo ha detto.Originariamente inviato da xegallo
tutte le funzioni di sistema in un sistema a 32 bit ritornano esclusivamente interi a 32 bit
Interi. Se non ricordo male double è un valore con la virgola...
Quindi si sarebbe dovuto fare un integer se si cerca il pelo nell'uovo.
Giusto?