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

    [VB2008] Intercettare le installazioni

    Devo installare:
    - framework
    - sqlServer

    Ho creato una applicazione VB.NET che mi installa i due "programmi"

    Ho fatto due file .bat e li lancio cosi...

    Per il Framework

    codice:
    Private Sub InstallazioneFramework()  
      Dim ProcessProperties As New ProcessStartInfo         
      ProcessProperties.FileName = "InstallazioneFrameWork.bat"         
      ProcessProperties.WorkingDirectory = Application.StartupPath & "\Framework\"         
      ProcessProperties.WindowStyle = ProcessWindowStyle.Hidden         
      Dim myProcess As Process = Process.Start(ProcessProperties)         
      myProcess.EnableRaisingEvents = True     End Sub
    Per SqlServer

    codice:
     Private Sub InstallazioneSQLServer()         
      Dim ProcessProperties As New ProcessStartInfo         
      ProcessProperties.FileName = "Installazione.bat"         
      ProcessProperties.WorkingDirectory = Application.StartupPath & "\SQLServer\"         
      ProcessProperties.WindowStyle = ProcessWindowStyle.Hidden        
      Dim myProcess As Process = Process.Start(ProcessProperties)         
      myProcess.EnableRaisingEvents = True      End Sub
    Se li eseguo uno alla volta tutto è perfetto
    Quindi premo un pulsante ed installo framework, premo un altro pulsante installo SqlServer

    Ora volevo installare tutto in modo sequenziale...
    Ma se metto tutto sotto un pulsante

    codice:
     Private Sub btnInstalla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInstalla.Click         
      Me.InstallazioneFramework()         
      Me.InstallazioneSQLServer()         
      MsgBox("Installazione completata con successo")      End Sub
    Lui me le installa contemporaneamente....
    Funziona lo stesso ma a me non piace....

    Come faccio per controllare la fine di una installazione per proseguire con la seconda?

    Ciao e grazie
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

  2. #2
    Potresti dichiarare myProcess come membro privato della classe, aggiungendo la parola chiave WithEvents. In questo modo puoi intercettare l'evento di Process chiamato Exited, che viene invocato appena il processo termina.

    Ecco una piccola demo:
    codice:
    Public Class Form1
        Private WithEvents mp As Process
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim ProcessProperties As New ProcessStartInfo
            ProcessProperties.FileName = "C:\Windows\system32\notepad.exe"
            ProcessProperties.WindowStyle = ProcessWindowStyle.Normal
            mp = Process.Start(ProcessProperties)
            mp.EnableRaisingEvents = True
        End Sub
    
        Private Sub mp_Exited(sender As Object, e As System.EventArgs) Handles mp.Exited
            MessageBox.Show("Finito")
        End Sub
    End Class
    Chi non cerca trova.

  3. #3

    ok

    Originariamente inviato da tas
    Potresti dichiarare myProcess come membro privato della classe, aggiungendo la parola chiave WithEvents. In questo modo puoi intercettare l'evento di Process chiamato Exited, che viene invocato appena il processo termina.

    Ecco una piccola demo:
    codice:
    Public Class Form1
        Private WithEvents mp As Process
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim ProcessProperties As New ProcessStartInfo
            ProcessProperties.FileName = "C:\Windows\system32\notepad.exe"
            ProcessProperties.WindowStyle = ProcessWindowStyle.Normal
            mp = Process.Start(ProcessProperties)
            mp.EnableRaisingEvents = True
        End Sub
    
        Private Sub mp_Exited(sender As Object, e As System.EventArgs) Handles mp.Exited
            MessageBox.Show("Finito")
        End Sub
    
    
    
    End Class

    grandeeeeeeee
    funziona perfettamente....

    grazieeeeeeeeeeeeeeeeee
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

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.