Exe beenden

Christoph1972

Erfahrenes Mitglied
Hallo,

ich möchte das mein geladenes Programm, in einem bestimmten Fall, ein anderes Prog startet und sich selbst beendet. Ich habe das so gemacht:

If blablabla Then

szFileName_B = App.Path & IIf(Right$(App.Path, 1) = "\", "", "\") & "blablabla.exe"
Shell szFileName_B, vbNormalFocus

End

End If

Nur wenn ich das so mache schließt das MDI Form nicht, es kann zwar nichts mehr ausgeführt werden, aber es ist noch sichtbar. Das Unload Me möchte ich nicht nutzen, da ich in das Unload Ereignis ein VbYesNo eingebaut habe, was dann immer erscheint.
Hat da jemand eine Idee wie ich das machen kann?


Gruß

Christoph
 
Hallo

Benutze doch einfach den Befehl END
Damit wird das Unload-Ereignis übergangen und das Programm beendet sich.

Schau mal ob dir das hilft
 
Das mache ich ja, aber das MDI-Form ist noch sichtbar, es kann zwar nichts mehr in ihm ausgeführt werden, die Buttons sind noch sichtbar aber tot.

Gruß

Christoph
 
Bist du sicher das die Schleife ordendlich durchlaufen wird? Wenn der Prozess an der If Abfrage hängt, bekommst du einen Überlauf und das Programm stürzt ab.

Was soll dein Programm bewirken? Vieleicht gibt es noch eine andere Lösung
 
Wenn ich Dich richtig verstanden habe, dann möchtest Du Dein Programm wahlweise mit bzw ohne Bestätigungsabfrage beenden.

Dann schreibe Dir doch einfach eine 'beenden - Prozedur', der Du dann einen 'status - Parameter' übergibst und auswertest. Dann kannst Du auch 'Unload Me' verwenden...

Vielleicht etwas in dieser Art:

Code:
Sub beenden(status As String)
    If status = "mit" Then
        If MsgBox("Wirklich beenden?", vbYesNo, "beenden") = 6 Then
            Unload Me
        End If
    Else
        Unload Me
    End If
End Sub

MfG
 
Du könntest auch das Query-Unload-Ereignis benutzen. Dort ist "Status-Variable" von Ein_Freund schon gleich dabei:

Code:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode <> vbFormCode Then
	'.....
	'Frage, ob Programm wirklich beenden
	'.....
End If
End Sub
Den End-Befehl würde ich vermeiden zu benutzen, da dabei (soweit ich weiß) belegter Arbeitsspeicher nicht freigegeben wird, weil die geladenen Formulare nicht gescheit entladen werden.
 
Zurück