Fermer le programme ouvert et lancer sa copie d'un autre repertoire

cs_osvaldege Messages postés 6 Date d'inscription mercredi 2 septembre 2009 Statut Membre Dernière intervention 14 mai 2010 - 10 sept. 2009 à 11:27
cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 juin 2010 - 10 sept. 2009 à 14:43
Bonjour,
Voilà en fait mon problème c'est que je voudrais copier le contenu de mon dossier où le programme est exécuté dans un autre repertoire et faire en sorte que le programme ce lance de cet autre repertoire et se ferme d'où je l'ai initialement lancé.
Le problème c'est que quand je l'execute c'est le programme que j'aimerai faire fermer qui reste ouvert et l'autre qui se ferme.
Et je n'arrive pas a comprendre pourquoi?
Je vous remercie d'avance de vos réponse ;)


If Not Directory.Exists("C:\WINDOWS\osvalde") Then
My.Computer.FileSystem.CreateDirectory("C:\WINDOWS\osvalde")
My.Computer.FileSystem.CopyDirectory(".", "C:\WINDOWS\osvalde", True)

Shell("C:\WINDOWS\osvalde\monprog.exe")

Me.Close()

End If

2 réponses

cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 juin 2010 1
10 sept. 2009 à 14:18
Tu devrais récupéré le PID de ton application, exécute l'autre non pas par un shell mais plutot par un process.start(pathfileexe) et lorsqu'il est lancé tu fais un stop sur le process que tu veux arreter.

Simple a dire je te fais un exemple quand j'ai le temps
0
cs_baz187rem Messages postés 78 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 21 juin 2010 1
10 sept. 2009 à 14:43
voici un morceaux de code ...

dans mon exemple, dans la propriété de la textbox txtPathApp.Text il y a
c:\temp\

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim NewProc As New Process
    Dim path As String
    Dim procList As Diagnostics.Process()
    Dim CurrId As Integer

    procList = PrevInstance(CurrId)

    path = txtPathApp.Text

    NewProc.StartInfo.FileName = path & "processApp.exe"
    NewProc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized

    NewProc.Start()

    For iCpt As Integer = 0 To UBound(procList)
      If iCpt = CurrId Then
        procList(iCpt).Kill()
      End If
    Next iCpt

  End Sub

  Private Function PrevInstance(ByRef procId As Integer) As Diagnostics.Process()

    Dim CurrProc As Diagnostics.Process = Diagnostics.Process.GetCurrentProcess()

    Dim procList As Diagnostics.Process() = Diagnostics.Process.GetProcessesByName(CurrProc.ProcessName)

    If UBound(procList) >= 0 Then
      For i As Integer = 0 To UBound(procList)

        If procList(i).Id = CurrProc.Id Then
          procId = i
          Exit For
        End If
      Next

      Return procList
    Else
      Return Nothing
    End If

  End Function
0
Rejoignez-nous