Process in schließung

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von XBrainBug.

    Process in schließung

    Hallo zusammen,

    ich habe eine schöne Funktion die Prüft ob ein Process läuft, klappt alles wunderbar. Und wenn er läuft, soll ein Object erzeugt werden mit dem Process usw..., damit habe ich alles kein Problem. Das Problem habe ich wenn das Programm gerade geschlossen wird, was schon mal 2-3 Sekunden dauern kann und dann meine Funktion versucht das Object zu erzeugen. Natürlich knallt das und selbst mit Try kriege ich es nicht hin, das meine Funktion damit klar kommt. Es kommt entweder die Messagebox mit dem Fehler das das Object nicht mehr existiert und wenn ich diese Ausblende friert das ganze Programm (mein Programm) ein oder er versucht das Programm (AGVIP) zu öffnen.
    Kann man irgendwie erkennen wenn ein Programm gerade geschlossen wird?! Oder habe ihr eine Idee wie man das lösen könnte?

    Ich kann nicht noch mal nach 3 Sek. eine zweite Prüfung machen lassen, es muss möglichst schnell laufen!


    Hier mein Code:

    VB.NET-Quellcode

    1. Public Function ActivesTelefonat()
    2. Dim n As Boolean = False
    3. For Each oProcess As Process In System.Diagnostics.Process.GetProcessesByName("AGVIP")
    4. If oProcess.SessionId = System.Diagnostics.Process.GetCurrentProcess().SessionId Then
    5. n = True
    6. End If
    7. Next
    8. If n = True Then
    9. Try
    10. Dim Application As New AgvipApplication
    11. Dim ActiveCall As Object = Application.ActiveCall
    12. If ActiveCall Is Nothing Then
    13. Return vbFalse
    14. Else
    15. If Application.ActiveCall.IsConnected = vbTrue Then
    16. Return vbTrue
    17. Else
    18. Return vbFalse
    19. End If
    20. End If
    21. Catch ex As System.Exception
    22. 'MsgBox(ex.Message)
    23. Return vbFalse
    24. End Try
    25. Else
    26. Return vbFalse
    27. End If
    28. End Function

    XBrainBug schrieb:

    "AGVIP"
    Was ist das für ein Programm?
    Kannst Du diese App nicht vollständig über AgvipApplication behandeln?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    AGVIP ist ein Programm für CRM, telefonie usw. für z.B. Callcenter grutzeck.de. Ich muss halt prüfen ob in dem Moment gerade telefoniert wird. Und da das Programm keine TAPI oder TSP Schnittstelle hat, muss ich das Objektmodell von AGVIP nehmen.

    Nein, leider kann ich das nicht vollständig über AGVIP behandeln.