Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Programm durch Makro beenden und wieder starten

Forumthread: Programm durch Makro beenden und wieder starten

Programm durch Makro beenden und wieder starten
19.09.2007 17:01:47
Benjamin
Hallo,
kann man durch ein Makro ein laufendes Programm unter Windows beenden und anschließend wieder starten?
Ich hoffe es gibt so einen Befehl
Mit freundlichen Grüßen
Benjamin

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Programm durch Makro beenden und wieder starte
19.09.2007 17:57:00
Anton
Hallo Benjamin,
z.B. so:

Sub Programm_killen()
  strComputer = "."
 'zu killendes Programm 'AcroRd32.exe'
  strProgramm = "'AcroRd32.exe'"
  Set objWMIService = GetObject("winmgmts:" _  
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = " & strProgramm)
  For Each objProcess In colProcessList  
    objProcess.Terminate
    Debug.Print objProcess.Name
  Next
End Sub  
Sub programm_starten()
  Set fs = CreateObject("Scripting.FileSystemObject")  
  Set WshShell = CreateObject("WScript.Shell")  
  prog = Application.GetOpenFilename("Programme (*.exe), *.exe")  
  If prog = False Then Exit Sub    
  prog = fs.getfile(prog).shortpath
  WshShell.Run prog, 1, True
  MsgBox "Programm geschlossen"
  Set WshShell = Nothing  
End Sub  

mfg Anton

Anzeige
AW: Programm durch Makro beenden und wieder starte
19.09.2007 21:10:00
Benjamin
Hi,
die Makros funktionieren.
Aber bei dem Makro zum Programm starten muss man noch auswählen welches Programm man ausführen möchte. Ich wollte mit dem Makro ein bestimmtes Programm starten und habe im Internet den Befehl shell gefunden.
Spricht irgendwas dagegen das Makro so laufen zu lassen (funktionieren tut es jedenfalls) :

Sub Test()
Shell "c:\programme\Mozilla Firefox\Firefox.exe", vbNormalFocus
End Sub


Mit freundlichen Grüßen
Benjamin

Anzeige
Nein! oT
19.09.2007 22:12:00
Herbert
ot
;
Anzeige
Anzeige

Infobox / Tutorial

Programm durch Makro beenden und wieder starten


Schritt-für-Schritt-Anleitung

Um ein laufendes Programm mit einem VBA-Makro zu beenden und dann wieder zu starten, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsm)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code ein:

    Sub Programm_killen()
       Dim strComputer As String
       Dim strProgramm As String
       Dim objWMIService As Object
       Dim colProcessList As Object
       Dim objProcess As Object
    
       strComputer = "."
       strProgramm = "'AcroRd32.exe'" ' Beispielprogramm, das beendet werden soll
    
       Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
       Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = " & strProgramm)
    
       For Each objProcess In colProcessList
           objProcess.Terminate
           Debug.Print objProcess.Name
       Next
    End Sub
    
    Sub programm_starten()
       Dim fs As Object
       Dim WshShell As Object
       Dim prog As String
    
       Set fs = CreateObject("Scripting.FileSystemObject")
       Set WshShell = CreateObject("WScript.Shell")
       prog = Application.GetOpenFilename("Programme (*.exe), *.exe")
       If prog = False Then Exit Sub
       prog = fs.getfile(prog).shortpath
       WshShell.Run prog, 1, True
       MsgBox "Programm geschlossen"
       Set WshShell = Nothing
    End Sub
  4. Anpassen des Codes:

    • Ändere strProgramm auf den Namen des Programms, das Du beenden möchtest, z.B. "'deinProgramm.exe'".
  5. Makro ausführen:

    • Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.

Häufige Fehler und Lösungen

  • Fehler: Programm wird nicht beendet:

    • Stelle sicher, dass der Prozessname korrekt in strProgramm angegeben ist.
  • Fehler: VBA-Code läuft nicht:

    • Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center.
  • Fehler: Programm startet nicht:

    • Stelle sicher, dass der Pfad zu dem Programm korrekt ist, wenn Du Shell verwendest.

Alternative Methoden

Anstelle von VBA kannst Du auch Windows-Befehle in einer Batch-Datei verwenden, um Programme zu beenden und zu starten. Beispiel:

taskkill /IM deinProgramm.exe
start "" "C:\Pfad\zu\deinProgramm.exe"

Speichere diesen Code in einer .bat-Datei und führe diese aus.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die obigen Makros anpassen kannst:

  1. Beenden und Starten von Mozilla Firefox:

    strProgramm = "'firefox.exe'"
  2. Beenden und Starten von Microsoft Word:

    strProgramm = "'WINWORD.EXE'"

Wenn Du ein spezifisches Programm starten möchtest, kannst Du den direkten Pfad in der Shell-Funktion verwenden:

Shell "C:\Programme\Mozilla Firefox\Firefox.exe", vbNormalFocus

Tipps für Profis

  • Verwende Fehlerbehandlung: Integriere eine Fehlerbehandlung in Deinen Code, um unerwartete Probleme zu erkennen und zu behandeln.

    On Error Resume Next
  • Automatisierung: Du kannst die beiden Makros in ein einziges Makro integrieren, um den Prozess zu automatisieren.

  • Testen in einer sicheren Umgebung: Teste Deine Makros in einer sicheren Umgebung, um unerwünschte Auswirkungen zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich ein Makro verwenden, um ein beliebiges laufendes Programm zu beenden?
Ja, solange Du den korrekten Namen

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige