Prozesse kontrollieren und beenden

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Pascal.

    Prozesse kontrollieren und beenden

    Hallo,

    ich habe das Problem, dass bei Ausfuehrung meines VB6 Programmes ein Prozess gestartet werden soll und am Ende wieder beendet. Eventuell koennte es jedoch auch sein, dass dieser Prozess schon laeuft. Ich habe allerdings keine Ahnung, wie ich dies codetechnisch hinbekommen soll. Koennt Ihr mir helfen?

    Gruss
    Felix
    ...ein Prozess gestartet werden soll...

    Shell-Befehl oder ShellExecute (siehe FAQ-Bereich)
    am Ende wieder beendet

    Da gibts mehrere Möglichkeiten, hier mal eine: Fremde Anwendung nach vorgegebener Zeitspanne beenden
    Eventuell koennte es jedoch auch sein, dass dieser Prozess schon laeuft.

    Suchfunktion benutzen! -> vb-paradise.de/thread.php?threadid=2119
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Also hab das jetzt mal mit den Tipps probiert. Das geht auch einigermaßen,nur das mit dem Terminiern am Ende klappt net bzw. verstehe ich nicht.

    also in dem Beispiel steht

    Brainfuck-Quellcode

    1. 'Dieser Source stammt von [URL]http://www.activevb.de[/URL]
    2. 'und kann frei verwendet werden. Für eventuelle Schäden
    3. 'wird nicht gehaftet.
    4. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
    5. 'Ansonsten viel Spaß und Erfolg mit diesem Source!
    6. '------------- Anfang Projektdatei Project1.vbp -------------
    7. '--------- Anfang Formular "Form1" alias Form1.frm ---------
    8. ' Steuerelement: Textfeld "Text1"
    9. ' Steuerelement: Schaltfläche "Command1"
    10. ' Steuerelement: Beschriftungsfeld "Label1"
    11. Option Explicit
    12. Private Declare Function WaitForSingleObject Lib "kernel32" _
    13. (ByVal hHandle As Long, ByVal dwMilliseconds As Long) _
    14. As Long
    15. Private Declare Function CloseHandle Lib "kernel32" _
    16. (ByVal hObject As Long) As Long
    17. Private Declare Function OpenProcess Lib "kernel32" (ByVal _
    18. dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
    19. ByVal dwProcessId As Long) As Long
    20. Private Declare Function TerminateProcess Lib "kernel32" (ByVal _
    21. hProcess As Long, ByVal uExitCode As Long) As Long
    22. Const INFINITE = -1&
    23. Const SYNCHRONIZE = &H100000
    24. Private Sub Form_Load()
    25. Text1.Text = 1000
    26. End Sub
    27. Private Sub Command1_Click()
    28. Dim Task&, Handle&, Result&
    29. Task = Shell("notepad.exe", vbNormalFocus)
    30. Handle = OpenProcess(SYNCHRONIZE, False, Task)
    31. Result = WaitForSingleObject(Handle, CLng(Text1.Text))
    32. AppActivate Me.Caption
    33. If Result Then
    34. Result = TerminateProcess(Handle, 0)
    35. Result = CloseHandle(Handle)
    36. MsgBox "Durch das Programm geschlossen"
    37. Else
    38. MsgBox "Durch den Anwender geschlossen"
    39. End If
    40. End Sub


    Wie muß ich jetzt meinen Process hier einbinden, das er nur geschloßen wird. hier wird er ja als Task eingebunden und dann geöffnet und ins Handle geschrieben.

    Hoffe das ist klar geworden

    MfG Felix