IPB

Willkommen, Gast ( Anmelden | Registrierung )

4 Seiten V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Leerzeichen im VB Script
Conny
Beitrag 26.02.2004 - 19:05
Beitrag #21


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
helpy
Beitrag 26.02.2004 - 20:11
Beitrag #22


;-)
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
Conny
Beitrag 27.02.2004 - 1:06
Beitrag #23


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
helpy
Beitrag 27.02.2004 - 8:38
Beitrag #24


;-)
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
helpy
Beitrag 27.02.2004 - 8:44
Beitrag #25


;-)
Gruppensymbol

Gruppe: Mods
Beiträge: 246
Mitglied seit: 20.11.2001
Mitglieds-Nr.: 15



ZITAT
Die erste  -AppActivate- meldet:
QUELLTEXT
Ungültiger Prozeduraufruf oder ungültiges Argument.

Code 800A0005
Ich hab' die Strings für die SendKeys-Aufrufe nicht überprüft. Hatte angenommen, dass das stimmt.

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
Go to the top of the page
 
+Quote Post
Conny
Beitrag 27.02.2004 - 10:01
Beitrag #26


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
helpy
Beitrag 27.02.2004 - 10:38
Beitrag #27


;-)
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
Conny
Beitrag 28.02.2004 - 0:33
Beitrag #28


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
helpy
Beitrag 28.02.2004 - 9:55
Beitrag #29


;-)
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
Conny
Beitrag 28.02.2004 - 10:09
Beitrag #30


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

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
Go to the top of the page
 
+Quote Post
Google Bot
Beitrag
Beitrag #


Google Ads









Go to the top of the page
 
Quote Post

4 Seiten V  < 1 2 3 4 >
Reply to this topicStart new topic
2 Besucher lesen dieses Thema (Gäste: 2 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 10.05.2024 - 19:18

taschenkalender
expertise-panel IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here