Anwendung über Konsole beenden

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Anwendung über Konsole beenden

    Moin!

    für eine Aufgabe brauche ich ein ganz einfaches Tool - es soll nur eine laufende Anwendung beenden.

    Hierfür habe ich folgenden Code erstellt:

    VB.NET-Quellcode

    1. Module Module1
    2. Sub Main()
    3. Dim _myprocess As String = "MapEdit.Desktop.exe"
    4. Dim myProcesses() As Process
    5. Dim myProcess As Process
    6. Dim zahl As Integer = 0
    7. myProcesses = Process.GetProcessesByName(_myprocess)
    8. For Each myProcess In myProcesses
    9. myProcess.Kill()
    10. Next
    11. End Sub
    12. End Module


    Das zugehörige Programm zeigt sich im Taskmanager wie folgt:




    Die Variable myProcesses enthält aber keine Objekte.

    Habe ich die Eigenschaften falsch gelesen oder wo könnte mein Gedankenfehler liegen?

    Gruß Jan
    Hallo jan99,

    Versuche mal alternativ den Process über eine Kommandozeile zu beenden.

    Du kannst dazu einfach einen neuen cmd Prozess mit folgenden Parameter aufrufen.
    /c taskkill /f /im "DEIN ANWENDUNGSNAME.EXE"

    Viele Grüße,
    Marvin
    Das Kill ist heftig. Alternativ CloseMainWindow (oder so ähnlich)? Könnte aber alles von Antivirenprogrammen als Problem erkannt werden. Hatte ich neulich auch. Allein schon wegen GetProcesses <X

    jan99 schrieb:

    Das zugehörige Programm zeigt sich im Taskmanager wie folgt:
    das ist kein TaskManager-Bild.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @jan99
    In der Befehlszeile ist keineswegs ein Fehler drin!
    Marvin meinte nämlich konkret die Zeile cmd.exe /c taskkill /f /im "DEIN ANWENDUNGSNAME.EXE" mit der man die Befehlszeile in eine Verknüpfung packen kann.
    Gruss Alex

    jan99 schrieb:

    VB.NET-Quellcode

    1. Dim _myprocess As String = "MapEdit.Desktop.exe"
    Der Prozess heißt nicht .exe.
    Probierma

    VB.NET-Quellcode

    1. Dim _myprocess As String = "MapEdit.Desktop"
    Ansonsten liste alle Projekte (mit MainWindow) auf und finde Deines heraus.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!