Fermer le programme ouvert et lancer sa copie d'un autre repertoire
cs_osvaldege
Messages postés6Date d'inscriptionmercredi 2 septembre 2009StatutMembreDernière intervention14 mai 2010
-
10 sept. 2009 à 11:27
cs_baz187rem
Messages postés78Date d'inscriptionvendredi 23 mars 2007StatutMembreDernière intervention21 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
A voir également:
Fermer le programme ouvert et lancer sa copie d'un autre repertoire
cs_baz187rem
Messages postés78Date d'inscriptionvendredi 23 mars 2007StatutMembreDernière intervention21 juin 20101 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
cs_baz187rem
Messages postés78Date d'inscriptionvendredi 23 mars 2007StatutMembreDernière intervention21 juin 20101 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