![]() |
Willkommen, Gast ( Anmelden | Registrierung )
![]() ![]() |
![]() |
![]()
Beitrag
#21
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hi,
ich schon wieder 8) Nun möchte ich gerne mit VBS auf einem Schlag mehrere Programme beenden!!! So weit bin ich bis jetzt; geht aber nicht :cry: (Runtimefehler) Kann mir einer (Helpy ?) bitte sagen was ich falsch mache?? Bin ich überhaupt auf dem richtigen Weg? QUELLTEXT Option Explicit
' Variablen deklarieren Dim intDoIt Dim AppActivate DIM Sendkeys DIM L_Ending_MsgBox_Message_Text DIM L_Ending_MsgBox_Title_Text Dim Sleep 'Substring: für Boxentext, Boxentitel und Abbruch Sub Ending() intDoIt = MsgBox(L_Ending_MsgBox_Message_Text, _ vbOKCancel + vbQuestion, _ L_Ending_MsgBox_Title_Text ) If intDoIt = vbCancel Then WScript.Quit End If End Sub ' Programm ablauf, Zuweisen der Variablen L_Ending_MsgBox_Message_Text = "Sollen die Laufenden Programme," & chr(13) & "" & chr(13) & "beendet werden?" L_Ending_MsgBox_Title_Text = "Programme Schließen" Call Ending() AppActivate "S" 'Aktiviert das Programm Sendkeys "{~F4}" 'Simuliert den Tastenanschlag ALT+F4 WScript.Sleep 1000 AppActivate "C" Sendkeys "{~F4}" ' ***************Ende************* Danke schon mal! Conny |
|
|
![]()
Beitrag
#22
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
Hi Conny,
1. Möglichkeit AppActivate und SendKeys kannst Du nicht einfach so aufrufen. Hier die Ergänzungen/Änderungen: QUELLTEXT '...
Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") '... WshShell.AppActivate "S" 'Aktiviert das Programm WshShell.Sendkeys "{~F4}" 'Simuliert den Tastenanschlag ALT+F4 WScript.Sleep 1000 WshShell.AppActivate "C" WshShell.Sendkeys "{~F4}" Hinweis: Wenn Programm "S" Änderungen noch nicht gespeichert hat, dann kann es sein, dass dieses Programm eine entsprechende Meldung ausgibt (z.B.: "Sollen die Daten gespeichert werden? ..."). Das Programm wartet nun auf eine Benutzereingabe. 2. Möglichkeit Abhängig davon, welches Betriebssystem Du nutzt (und ob das WMI[1] installiert ist), könnte noch folgendes funktionieren: QUELLTEXT Option Explicit
Dim objProcesses, objProcess Set objProcesses = GetObject("winmgmts:").ExecQuery _ ("select * from Win32_Process where Name='IEXPLORE.EXE'") For Each objProcess In objProcesses objProcess.Terminate Next Damit werden z.B. alle "IEXPLORE.EXE" beendet! Achtung: beim Schließen von Programmen, die noch nicht alles gespeichert haben! Da musst Du testen, wie Dein Programm drauf reagiert! cu, helpy [1] WMI = Windows Management Instrumentation Tools |
|
|
![]()
Beitrag
#23
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hi Helpy,
Beide angebotene Möglichkeiten geben Fehlermeldungen. Die erste -AppActivate- meldet: QUELLTEXT Ungültiger Prozeduraufruf oder ungültiges Argument.
Code 800A0005 Die zweite haut mir zwar die offene Internetverbindung auf nimmer wiedersehen weg (geht erst nach neustart wieder!) gibt aber gleichzeitig auch folgender Fehlermeldung: QUELLTEXT Datei- oder Klassenname während der Automatisierungsoperation nicht gefunden: 'GetObject'
Code: 800A01B0 any ideas? Conny |
|
|
![]()
Beitrag
#24
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
Welche Version gibt denn nun folgender Code bei Dir aus?
QUELLTEXT MsgBox WScript.Version
cu, helpy |
|
|
![]()
Beitrag
#25
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
ZITAT Die erste -AppActivate- meldet:
Ich hab' die Strings für die SendKeys-Aufrufe nicht überprüft. Hatte angenommen, dass das stimmt.
QUELLTEXT Ungültiger Prozeduraufruf oder ungültiges Argument. Code 800A0005 Um Alt+F4 per SendKeys zu schicken musst Du den String "%{F4}" verwenden! ZITAT Die zweite haut mir zwar die offene Internetverbindung auf nimmer wiedersehen weg (geht erst nach neustart wieder!) gibt aber gleichzeitig auch folgender Fehlermeldung: QUELLTEXT Datei- oder Klassenname während der Automatisierungsoperation nicht gefunden: 'GetObject' Code: 800A01B0 Da schätze ich, dass WMI bei Dir nicht installiert ist! Welche Windows-Version verwendest Du? cu, helpy |
|
|
![]()
Beitrag
#26
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hallo Guido,
MsgBox WScript.Version = 5.6 (wie bei Dir!) Win98SE ZITAT Um Alt+F4 per SendKeys zu schicken musst Du den String "%{F4}" verwenden! Oops! :oops:
ZITAT Da schätze ich, dass WMI bei Dir nicht installiert ist! Nun, nachforschungen haben ergeben, daß ich in Windowssystem eine wmiexe.exe habe, sowie eine wmi.dll , wmidrv.sys , wmilib.sys Die Antwort lautet -denke ich- : ist installiert... SendKey String teste ich jetzt noch mal (hab' gerade wenig Zeit) melde mich gleich mit dem Ergebnis zurück :wink: cu Conny |
|
|
![]()
Beitrag
#27
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
ZITAT ZITAT Da schätze ich, dass WMI bei Dir nicht installiert ist! Nun, nachforschungen haben ergeben, daß ich in Windowssystem eine wmiexe.exe habe, sowie eine wmi.dll , wmidrv.sys , wmilib.sys Die Antwort lautet -denke ich- : ist installiert... Profi bin ich in Sachen WMI nicht ... hab' in dieser Hinsicht auch nur das eine oder andere Skript für mich angepasst. Mehr Infos: bei Microsoft Dort steht: ZITAT WMI functionality introduced in the Windows 2000 SP 2 operating system is also available to earlier operating systems by downloading the Microsoft® .NET Framework SDK, and the .NET Framework Redistributable. These can be obtained at ... Ob es sinnvoll ist, das .NET Framewort zu installieren, kann ich Dir nicht sagen. Ziemlich umfangreich ist es ... das Setup des Redistributable ist 23MByte groß und das SDK kann man auf Win98 gar nicht installieren. cu, helpy |
|
|
![]()
Beitrag
#28
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hallo Guido,
um 'Anwendung schließen' aufzurufen nimmt man 'strg' + 'Alt' + 'Entf' Wäre in VBS: QUELLTEXT WshShell.Sendkeys "^(%{DEL})"
oder QUELLTEXT WshShell.Sendkeys "(^%{DEL})"
Klappt aber nicht! :cry: Fehlt da noch was? Bei der richtige Abgabe von 'Sendkeys' müßte dann doch das Fenster 'Anwendung schließen' aufgehen oder? Mein Ziel ist es, über diesen (Um)weg erst 'Anwendung schließen' aufzurufen, dann durch Buchstabe das betreffende Programm auszuwählen, dann durch 'Alt' + Buchstabe das Programm zu schließen... Code bis jetzt: QUELLTEXT 'Diverse Programme schließen
Option Explicit ' Variablen deklarieren Dim intDoIt Dim L_Ending_MsgBox_Message_Text Dim L_Ending_MsgBox_Title_Text Dim Sleep Dim WshShell 'Substring: für Boxentext, Boxentitel und Abbruch Sub Ending() intDoIt = MsgBox(L_Ending_MsgBox_Message_Text, _ vbOKCancel + vbQuestion, _ L_Ending_MsgBox_Title_Text ) If intDoIt = vbCancel Then WScript.Quit End If End Sub ' Programm ablauf, Box, Zuweisen der Variablen L_Ending_MsgBox_Message_Text = "Sollen die Laufenden Programme," & chr(13) & "" & chr(13) & "beendet werden?" L_Ending_MsgBox_Title_Text = "Programme Schließen" Call Ending() 'Object erstellen Set WshShell = WScript.CreateObject("WScript.Shell") 'Tastenanschlägen und Pausen WshShell.Sendkeys "^(%{DEL})" WScript.Sleep 500 WshShell.Sendkeys "D" WScript.Sleep 500 WshShell.Sendkeys "%T" 'Dieser Vorgang durch Schleife(??) für weitere Programme wiederholen... ' ***************Ende****** cu Conny |
|
|
![]()
Beitrag
#29
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
ZITAT Hallo Guido,
um 'Anwendung schließen' aufzurufen nimmt man 'strg' + 'Alt' + 'Entf' Strg+Alt+Entf gehört zu den Tastenkombinationen, die nicht funktionieren. Das wird so nicht klappen. Richtige Syntax wäre: QUELLTEXT ...Sendkeys "^%{DEL}"
Welche Programme willst Du denn automatisiert schließen? Warum willst Du das machen? Willst Du den Rechner zu einer bestimmten Zeit herunterfahren? cu, helpy |
|
|
![]()
Beitrag
#30
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hi,
ZITAT Welche Programme willst Du denn automatisiert schließen? Warum willst Du das machen? Willst Du den Rechner zu einer bestimmten Zeit herunterfahren? Wenn ich mit IE im Internet bin läuft gleichzeitig auch Outlook, Spamfilter, und Speedmanager, bzw. cFos. Nun habe ich halt überlegt ein VBS-Link -ganz unten neben den Start-Knopf- zu legen, mit der ich auf einmal diese Programme schließen kann. Schließlich werden sie auch so geöffnet (Damit hat ja mein Posting angefangen); Es scheint aber doch schwieriger als angenommen, das was man -problemlos- über VBS Starten kann, kann man offensichtlich nicht so problemlos wieder schließen :cry: Ich kann in der Doku. auch nichts geeignetes finden... Terminate habe ich auch schon erfolglos versucht... cu Conny |
|
|
Google Bot |
![]()
Beitrag
#
|
![]() Google Ads ![]() |
|
|
|
![]() ![]() |
![]() |
Vereinfachte Darstellung | Aktuelles Datum: 18.05.2025 - 3:12 |