2017-07-30 3 views
0

So habe ich ein Programm, das Bilder offline bekommt und dann das Bild in einer PictureBox anzeigt. Wenn der Benutzer auf das Bild in der PictureBox klickt, lädt das Programm das Bild in temporäre Dateien und öffnet dann das Bild mit dem Standard-Fotobetrachter. Aber wenn der Benutzer das Bild beendet, möchte ich dieses Bild aus meinen temporären Dateien löschen, aber ich habe ein paar Probleme dabei.Wenn Prozess beendet Datei löschen Visual Basic

So, hier ist mein Code im Moment:

Public Event Exited As EventHandler 
Public WithEvents p As New Process 

Public Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click 
    My.Computer.Network.DownloadFile(picture, "C:\Windows\Temp" + "\" + uname + ".png") 
    AddHandler p.Exited, AddressOf Me.p_Exited 
    p.StartInfo.FileName = "C:\Windows\Temp" + "\" + uname + ".png" 
    p.EnableRaisingEvents = True 
    p.Start() 
End Sub 


Public Sub p_Exited(ByVal sender As Object, ByVal e As System.EventArgs) Handles p.Exited 
    My.Computer.FileSystem.DeleteFile("C:\Windows\Temp" + "\" + uname + ".png") 
End Sub 

Also die Frage, die ich bin immer, wenn der Prozess gestartet wird, den gesamten Code ohne Fehler funktioniert es einfach ist, wenn ich das Bild in der Nähe/Verlassen der Prozess. Das untere Sub nimmt dies nicht auf.

Antwort

0

Sie könnten versuchen:

Private Sub RunningOrNot() 

     Dim p() As Process 
     p = Process.GetProcessesByName("nameofyourprocess") 

     If p.Count > 0 Then 
      'running 
     Else 
      'not running 
     End If 

    End Sub 

edit: .Count ist in VS2010 nicht erlaubt. Also, wenn Sie brauchen, verwenden Sie stattdessen .Length.