Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Prozess Beenden mit VBA (Excel)

Frage Entwicklung VB for Applications

Mitglied: ritzmann

ritzmann (Level 1) - Jetzt verbinden

17.01.2015, aktualisiert 26.01.2015, 2394 Aufrufe, 2 Kommentare

Hallo zusammen

Drehe momentan am Rad, da ich nicht mehr weiter weiss. Erhoffe mir durch euch eine Lösung zu finden.

Mit folgendem Code kann ich erfolgreich "calc.exe" beenden:

Private Sub cmdTaskBeenden_Click() 
  
Set objWindowsService = GetObject("winmgmts:" _ 
 & "{impersonationLevel=impersonate}!\\.\root\cimv2") 
Set ProcessList = objWindowsService.ExecQuery _ 
 ("SELECT * FROM Win32_Process WHERE Name = 'calc.exe'") 
For Each objProcess In ProcessList 
 objProcess.Terminate 'Prozess beenden 
Next objProcess 
End Sub
Nun soll aber nicht "calc.exe" beendet werden, sondern der jeweilige Prozess der in der Variable steht.

Nachfolgend der Code:

Private Sub cmdTaskBeenden_Click() 
  
AusgewaehlterProzess = ListBox1.Value 
  
Set objWindowsService = GetObject("winmgmts:" _ 
 & "{impersonationLevel=impersonate}!\\.\root\cimv2") 
Set ProcessList = objWindowsService.ExecQuery _ 
 ("SELECT * FROM Win32_Process WHERE Name = 'AusgewaehlterProzess'") 
For Each objProcess In ProcessList 
 objProcess.Terminate 'Prozess beenden 
Next objProcess 
End Sub
Leider funktioniert das nicht.
An der Variable kann es irgendwie nicht liegen da "MsgBox AusgewaehlterProzess" den Namen vom Prozess ausgibt.

Ob hier jemand eine Lösung weiss?

Gruss
Markus
Mitglied: colinardo
LÖSUNG 17.01.2015, aktualisiert 19.01.2015
Hallo Markus,
du hast die Variable nicht korrekt in die WQL Query eingebaut. Bei deiner Version wird der Variablenname als String selbst interpretiert und nicht der Inhalt der Variablen eingesetzt. Um das zu erreichen musst du das Konstrukt so schreiben (nur Zeile 4 wurde angepasst).
01.
Private Sub cmdTaskBeenden_Click() 
02.
    AusgewaehlterProzess = ListBox1.Value 
03.
    Set objWindowsService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
04.
    Set ProcessList = objWindowsService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & AusgewaehlterProzess & "'") 
05.
    For Each objProcess In ProcessList 
06.
         objProcess.Terminate 'Prozess beenden 
07.
    Next objProcess 
08.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: ritzmann
19.01.2015, aktualisiert 29.08.2015
Hallo Uwe

Vielen herzlichen Dank, funktioniert mit deinem Code super.
Hab wohl wieder was dazu gelernt!

Gruss
Markus
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBA Excel Dateien zusammenfassen (3)

Frage von cberndt zum Thema VB for Applications ...

Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

VB for Applications
Bilder vom LDAP in VBA - Excel (3)

Frage von Roadrunner777 zum Thema VB for Applications ...

Microsoft Office
Unterordner durchsuchen Excel VBA (1)

Frage von schwalbepilot zum Thema Microsoft Office ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...