Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Attendere chiusura file bat su VB

    Ciao a tutti, io devo avviare 3 file bat, e tramite un label scrivere che li ho avviati, questo è il codice:

    Public Class Form1

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Label5.Text = "Seleziona le modalità dell'attività"
    Shell("c:\1.bat", AppWinStyle.Hide, False, -1)
    Label5.Text = "Fase 1: defrag file di avvio" & Chr(10) & " In esecuzione..."
    Shell("c:\2.bat", AppWinStyle.Hide, False, -1)
    Label5.Text = "Fase 1: defrag file di avvio" & Chr(10) & " Completata!" & Chr(10) & "Fase 2: pulizia disco, cestino e cache" & Chr(10) & " In esecuzione..."
    Shell("c:\3.bat", AppWinStyle.Hide, False, -1)
    Label5.Text = "Fase 1: defrag file di avvio" & Chr(10) & " Completata!" & Chr(10) & "Fase 2: pulizia disco, cestino e cache" & Chr(10) & " Completata!" & Chr(10) & "Fase 3: pulizia coda di stampa" & Chr(10) & " In esecuzione..."
    End Sub

    End Class

    Però io voglio (prima che vb attenda la chiusura di ogni file bat prima di passare al comando successivo.

    Sapete darmi qualche dritta?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Utilizza la classe Process per questo tipo di lavoro.

    Però, suggerirei anche di esaminare bene cosa c'è dentro i bat per evitare di eseguirli sostituendo tutto con codice .NET.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Sono solo alle prime armi, potresti darmi il codice?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Putroppo - a parte il regolamento - non ho il tempo di scrivere codice ...

    Del resto avevi chiesto una dritta ... se ti impegni e leggi la documentazione sulla classe Process e gli esempi che ci sono, dovresti farcela (almeno tentarci)

    http://msdn.microsoft.com/en-us/libr...s.process.aspx

    e in particolare la

    WaitForExit
    http://msdn.microsoft.com/en-us/libr...4aw7b8.aspx#Y0


    P.S. Ma ti ripeto, devi guardare cosa c'è nei bat per evitare di usarli.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5

    Soluzione

    Ecco la soluzione:

    -scrivete sul codice questo:

    Shell("POSIZIONE FILE BAT", AppWinStyle.Hide, True, -1)

    -scrivete all'interno del file bat (alla fine):

    Exit

    -Cosí funziona

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Soluzione

    Originariamente inviato da ericdispencer
    Ecco la soluzione:

    -scrivete sul codice questo:

    Shell("POSIZIONE FILE BAT", AppWinStyle.Hide, True, -1)

    -scrivete all'interno del file bat (alla fine):

    Exit

    -Cosí funziona
    1) Exit alla fine di un batch non serve

    2) Il codice non attende che il primo batch termini per iniziare il secondo

    quindi non mi pare sia una soluzione ... ma contento tu ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.