Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

HTML-Editor phase 5 Support _ Talktime _ Leerzeichen im VB Script

Geschrieben von: Conny 19.01.2004 - 13:14

Hallo,
ich schon wieder biggrin.gif
Nächstes Problem:

Wie kann man einem VB Script klar machen Leerzeichen 'mitzulesen' ?

Beispiel 1:

set)
WSHShell.Run "C:ProgrammeInternet ExplorerIEXPLORE.EXE", vbTrue

Wird nicht richtig gelesen, weil zwischen Internet und Explorer ein leerzeichen steht, die folge ist eine Fehlermeldung.

Beispiel 2:

set)
WSHShell.Run "C:ProgrammeInternet_ExplorerIEXPLORE.EXE", vbTrue

Jetzt -mit Unterstrich- ginge es, aber dann muß ich auf'm Rechner ALLE Pfade zum IE abändern! :cry:

Kann man also dem Pfad etwas voran stellen, damit vorhandene Leerzeichen im Pfad nicht zum abbruch führen?

Danke schon mal,
Conny

Geschrieben von: helpy 19.01.2004 - 14:05

Pfade mit Leerzeichen musst Du mit Anführungszeichen umgeben. In VBScript machst Du das so:

QUELLTEXT
set WSHShell = CreateObject("WScript.Shell")

WSHShell.Run """C:ProgrammeInternet ExplorerIEXPLORE.EXE""", 1, vbTrue

... oder so:
QUELLTEXT
Const DbQuote = """"

cmd = "C:ProgrammeInternet ExplorerIEXPLORE.EXE"

set WSHShell = CreateObject("WScript.Shell")

WSHShell.Run DbQuote & cmd & DBQuote, 1, vbTrue

cu, helpy

Geschrieben von: Conny 19.01.2004 - 14:51

Danke Helpy!
Die erste Code werde ich wohl nehmen.
Dazu noch eine Frage:
Du hast drei Anführungszeichen gesetzt; warum nicht zwei?
(also jeweils zwei, am Anfang und am Ende)

cu
Conny

Geschrieben von: helpy 19.01.2004 - 15:18

Um innerhalb eines Strings in VBScript EIN doppeltes Anführungszeichen zu setzen muss man ZWEI schreiben, um zwischen String-Anfang und -Ende unterscheiden zu können.

cu, helpy

Geschrieben von: Netizen 19.01.2004 - 15:25

ZITAT
Du hast drei Anführungszeichen gesetzt; warum nicht zwei?
(also jeweils zwei, am Anfang und am Ende)

Da der String selbst in doppelte Anführungszeichen eingeschlossen ist, müssen diese, sofern sie im String vorkommen, entsprechend maskiert (escaped) werden. Je nach Sprache wird dies entweder durch 2 Zeichen direkt nacheinander oder z.B. durch einen vorangestellten Backslash erreicht.

HTH
n!

Geschrieben von: Conny 19.01.2004 - 15:39

Ok, alles klar!
Ich hab's -glaube ich- verstanden; diese Sprachen sind mir halt ziemlich fremd, bin halt Reitlehrer und kein Programmierer!
War aber -so gefühlsmäßig- schon auf'm richtigen weg,
habe z.B. zunächst versucht es so zu lösen:

QUELLTEXT
WSHShell.Run "C:Programme"Internet Explorer"IEXPLORE.EXE", 1, vbTrue


Ging/ geht zwar nicht, aber wenigstens hat die richtung gestimmt! :wink:

Danke noch mal!

Conny

Geschrieben von: Conny 19.01.2004 - 15:46

Ach so! Eins noch!
Wenn wir schon dabei sind... :wink:

Wenn ich in deisem Script eine MessageBox einbaue:

QUELLTEXT
MsgBox "Ich liebe Dich!"


Füllt diese Box den kompletten Bildschirm!
Ich meine, das ist wohl doch etwas übertrieben; ein kleines passendes Fensterchen wäre doch besser!

Lässt sich das ändern, wenn ja wie?

cu
Conny

Geschrieben von: Tom. 19.01.2004 - 15:55

ZITAT
QUELLTEXT
MsgBox "Ich liebe Dich!"


...was werkelst Du denn da???! :oops: laugh.gif

Geschrieben von: helpy 19.01.2004 - 16:02

ZITAT
Wenn ich in deisem Script eine MessageBox einbaue:
QUELLTEXT
MsgBox "Ich liebe Dich!"

Füllt diese Box den kompletten Bildschirm!
Ich meine, das ist wohl doch etwas übertrieben; ein kleines passendes Fensterchen wäre doch besser!

Dieses Phänomen ist mir gänzlich unbekannt!
Bei mir ist die MsgBox ein kleines "Fenster"! Wo steht Dein Skript? Wie wird es aufgerufen bzw. ausgeführt?

:wink: :wink: :wink:
Welche Auflösung verwendest Du?
Welche Einstellungen verwendest Du in Windows? (Schriftgröße für Dialog-Boxen)
:wink: :wink: :wink:

Wieviel Text wird in der MsgBox angezeigt?

cu, helpy

Geschrieben von: Conny 19.01.2004 - 16:47

Hi Helpy,

ZITAT
Dieses Phänomen ist mir gänzlich unbekannt!
Bei mir ist die MsgBox ein kleines "Fenster"! Wo steht Dein Skript? Wie wird es aufgerufen bzw. ausgeführt?


Nun, mir war's eigentlich auch unbekannt!
Irgendwann trat das ganze auf als ich mit den Pfadeinstellungen herumexperimentiert habe :roll:
Ist aber schon wieder ok; nachdem ich gerade eben das Script noch mal ausgebessert habe, funzt es wieder und die Box ist klein wie er sein soll!

Das Script liegt nun in einem Ordner auf C: mit verknüpfung auf dem Desktop.
Die Idee die dahinter steckt ist die, daß ich beim Starten des IE's meist noch ein paar kleinere Programme mitlauffen lassen möchte, die aber nicht im autostart haben will. Mit dem Script ist es eine elegante Lösung, meine ich.

@ Tom: Keine Sorge 'ich liebe Dich' war doch nur so dahin gekritzelt :wink:

Danke noch mal für die Mühe!
Conny

Geschrieben von: Conny 27.01.2004 - 21:28

Hallo,
Jetzt wo das Problem mit der Box geklärt ist, komt schon die nächste Frage auf.
Vorlauf:
Ich starte mit einem VB-Script ein Programm, vorher kommt eine Box mit der Frage: 'Wollen Sie XY starten?'. Die Box wird entweder mit 'OK' quittiert -danach startet das Programm- oder mit 'Abbrechen' danach sollte die Box verschwinden und das Programm auch nicht gestartet werden.

Mit welchen String oder Befehlsparameter läuft der Start-Abbruch ab?

Beispiel-Code bis jetzt:

QUELLTEXT
L_Frage_MsgBox_Message_Text   = "Soll IE gestartet werden?"

L_Welcome_MsgBox_Title_Text     = "Starten von IE 5.5"

Call Frage()



set WSHShell = CreateObject("WScript.Shell")

WSHShell.Run """C:ProgrammeInternet ExplorerIEXPLORE.EXE""", 1, vbTrue





Sub Frage()

   Dim intDoIt



   intDoIt =  MsgBox(L_Frage_MsgBox_Message_Text,    _

                     vbOKCancel + vbQuestion,       _

                     L_Frage_MsgBox_Title_Text )

End Sub


(da sind auch die 3 " wieder! :wink: )
cu
Conny

Geschrieben von: helpy 28.01.2004 - 8:37

Hi Conny,

QUELLTEXT
'-----------------------------------------------------------------------------

Option Explicit



'-----------------------------------------------------------------------------

' Variablen deklarieren

Dim WSHShell

Dim intDoIt

Dim L_Frage_MsgBox_Message_Text

Dim L_Welcome_MsgBox_Title_Text



'-----------------------------------------------------------------------------

' Variablen zuweisen

Set WSHShell = CreateObject("WScript.Shell")



L_Frage_MsgBox_Message_Text   = "Soll IE gestartet werden?"

L_Welcome_MsgBox_Title_Text   = "Starten von IE 5.5"



'-----------------------------------------------------------------------------

'

intDoIt = MsgBox( L_Frage_MsgBox_Message_Text, _

                 vbOKCancel + vbQuestion,       _

                 L_Welcome_MsgBox_Title_Text )



if intDoIt = vbOK Then

 WSHShell.Run """C:ProgrammeInternet ExplorerIEXPLORE.EXE""", 1, vbTrue

End If

'-----------------------------------------------------------------------------


Übrigens, Du hattest in Deiner Routine Frage() die Variable "L_Frage_MsgBox_Title_Text" verwendet, die gibt es aber nicht. Du hattest diese am Anfang mit "L_Welcome_MsgBox_Title_Text" definiert. Mit "Option Explicit" am Anfang deines Skripts gibt es bei Variablen immer eine Fehlermeldung, wenn diese nicht explizit mit Dim definiert wurde.

cu, helpy

Geschrieben von: Conny 28.01.2004 - 16:54

Hallo Helpy,
Du hast mich schon ein Stück weitergeholfen biggrin.gif

Jetzt habe ich folgende Variante 'gebastelt' und sie funktioniert! tongue.gif

Was meinst DU?

QUELLTEXT
'-------Aufruf BOX mit Text und Titel Angaben ---------



L_Frage_MsgBox_Message_Text   = "Soll Proton gestartet werden?"

L_Frage_MsgBox_Title_Text     = "Starten von Proton3"

Call Frage()



'-------Die Zuweisung----------

Sub Frage()

   Dim intDoIt



   intDoIt =  MsgBox(L_Frage_MsgBox_Message_Text,    _

                     vbOKCancel + vbQuestion,       _

                     L_Frage_MsgBox_Title_Text )

'--------Der Abbruch---------

  If intDoIt = vbCancel Then

       WScript.Quit

   End If

End Sub



'---------Programmaufruf-------------



set WSHShell = CreateObject("WScript.Shell")

WSHShell.Run "C:Programmeproton3proton.exe", 1, vbTrue


Ich habe jetzt mit 'DIM' nur intDoIt Deklariert, das scheint schon zu reichen...
Oder ist es so -zwar Funktionsfähig- aber mangelhaft programmiert?

Grüße
Conny

Geschrieben von: helpy 28.01.2004 - 17:10

Hi Conny,

ZITAT
Jetzt habe ich folgende Variante 'gebastelt' und sie funktioniert! tongue.gif  

Was meinst DU?
QUELLTEXT
...

Ich habe jetzt mit 'DIM' nur intDoIt Deklariert, das scheint schon zu reichen...
Oder ist es so -zwar Funktionsfähig- aber mangelhaft programmiert?

Jeder hat seinen eigenen Programmier-Stil! Die Entscheidung musst schon Du selbst treffen.

Ich verwende "Option Explicit" am Anfang immer und zwinge mich so dazu, dass auch wirklich alle Variablen deklariere. Bei größeren Skripten ist das ein großer Vorteil und Du vermeidest Tipp-Fehler bei den Variablen-Namen. Ohne "Option Explicit" werden Variablen bei der ersten Verwendung deklariert. Da kann es schon sein, dass man etwas länger nach einem Fehler sucht, der mit "Option Explicit" sofort angezeigt würde.

cu, helpy

Geschrieben von: Conny 28.01.2004 - 18:01

Hallo Helpy,

ZITAT
...Ich verwende "Option Explicit" am Anfang immer und zwinge mich so dazu, dass auch wirklich alle Variablen deklariere. Bei größeren Skripten ist das ein großer Vorteil und Du vermeidest Tipp-Fehler bei den Variablen-Namen. ...


ist natürlich ein Argument, ich werde es mir merken biggrin.gif :!:
Die Option "Option Explicit" war mir vollkommen unbekannt, es
kann bei mir von 'Programmieren' allerdings auch nicht die Rede sein;
auf C:WINDOWSSAMPLESWSH (W98) leigen halt ein paar Scripte, die habe ich mir angeschaut und einfach 'rumprobiert.
Ist aber schon interessant was man alles damit anstellen kann... 8)

cu
Conny

Geschrieben von: helpy 28.01.2004 - 18:21

Hallo Conny,

Hast Du die http://download.microsoft.com/download/winscript56/Install/5.6/W98NT42KMe/DE/scd56de.exe?

cu, helpy

Geschrieben von: Conny 28.01.2004 - 18:32

Hallo Helpy,
ich habe die VBSCRIP5.CHM von der Office2000 CD,
Da ist zwar viel drin, hilft aber eher dann, wenn man schon mal ein paar Grundkenntnisse hat.
Für mich war's bis jetzt nur 'learning by doing'

cu
Conny

Geschrieben von: Conny 28.01.2004 - 18:45

Hi Helpy,
ich bin's noch mal, habe die exe gezogen... sehr Interessant!
Vielen Dank!!
Conny

Geschrieben von: helpy 28.01.2004 - 20:12

Hallo Conny,

Bachte: Die genannte Doku bezieht sich auf die Version 5.6 des Windows Scripting Host!

Mit

QUELLTEXT
MsgBox WScript.Version
kannst Du anzeigen lassen, welche Version auf Deinem Rechner installiert ist.

cu, helpy

Geschrieben von: Conny 28.01.2004 - 20:54

Helpy, alles klar!
auch ich habe 5.6 auf'm Rechner.
Jetzt kann ich dann richtig loslegen! biggrin.gif

cu
Conny

Geschrieben von: Conny 26.02.2004 - 19:05

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

Geschrieben von: helpy 26.02.2004 - 20:11

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

Geschrieben von: Conny 27.02.2004 - 1:06

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

Geschrieben von: helpy 27.02.2004 - 8:38

Welche Version gibt denn nun folgender Code bei Dir aus?

QUELLTEXT
MsgBox WScript.Version


cu, helpy

Geschrieben von: helpy 27.02.2004 - 8:44

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

Geschrieben von: Conny 27.02.2004 - 10:01

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

Geschrieben von: helpy 27.02.2004 - 10:38

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: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_start_page.asp
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

Geschrieben von: Conny 28.02.2004 - 0:33

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

Geschrieben von: helpy 28.02.2004 - 9:55

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

Geschrieben von: Conny 28.02.2004 - 10:09

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

Geschrieben von: helpy 28.02.2004 - 11:33

Hi Conny,

Vielleicht hilft es Dir, auf ein Befehlszeilen-Tool zurückzugreifen: http://www.teamcti.com/pview/prcview.htm.
Da ist das kleine Programm pv.exe enthalten, mit dem kannst Du z.B.: mit ...

QUELLTEXT
pv -c iexplore.exe
... alle Internet Explorer Prozesse schließen.

cu, helpy

Geschrieben von: Conny 28.02.2004 - 22:36

Hi Helpy,
Alles KLAR biggrin.gif
Das Programm hat mich geholfen!
Mein Script sieht nun folgendermaßen aus:

QUELLTEXT
'Diverse Programme schließen



Option Explicit



' Variablen deklarieren

Dim intDoIt

Dim L_Warning_MsgBox_Message_Text

Dim L_Warning_MsgBox_Title_Text

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



Sub Warning()



   intDoIt =  MsgBox(L_Warning_MsgBox_Message_Text,    _

                    vbOKOnly + vbExclamation,       _

                     L_Warning_MsgBox_Title_Text )

End Sub





' Programm ablauf, Box, Zuweisen der Variablen

L_Ending_MsgBox_Message_Text   = "Sollen die Laufenden Internet-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")

WSHShell.Run "C:ConScriptsProgViewpv.exe -c MSIMN.EXE"

WScript.Sleep 1000



WSHShell.Run "C:ConScriptsProgViewpv.exe -kf SPAMPAL.EXE"

WScript.Sleep 200



WSHShell.Run "C:ConScriptsProgViewpv.exe -c IEXPLORE.EXE"

WScript.Sleep 2000



WSHShell.Run "C:ConScriptsProgViewpv.exe -kf SPEEDMGR.EXE"

WScript.Sleep 900



WSHShell.Run "C:ConScriptsProgViewpv.exe -kf TSMSVC.EXE"

WScript.Sleep 900



WSHShell.Run "C:ConScriptsProgViewpv.exe -kf PRCVIEW.EXE"



'Fenster schließen

'Tastenanschlägen und Pausen

WshShell.Sendkeys "%{F4}"

WScript.Sleep 200

WshShell.Sendkeys "%{F4}"

WScript.Sleep 200

WshShell.Sendkeys "%{F4}"

WScript.Sleep 1000



'Abschlußwarnung die Internetverbindung zu schließen

L_Warning_MsgBox_Message_Text   = "Bitte unten rechts die Internetverbindung trennen!"

L_Warning_MsgBox_Title_Text     = "Verbindung trennen"

Call Warning()



' ***************Ende*******


Schau doch noch mal drüber ob jetzt alles seine Richtigkeit hat...
(Fehlermeldungen bekomme ich keine smile.gif )

Es flitzen wohl -bei den Kill-Vorgängen- noch die DOS-Fensterchen über den Bildschirm; läßt sich das auch noch abstellen?

Mit den 'F4' Anschlägen schließe ich die BrowserFenster die komischerweise geöffnet blieben...

Vielen Dank schonmal für Deine hilfe.

cu
Conny

Geschrieben von: helpy 29.02.2004 - 10:53

ZITAT
Schau doch noch mal drüber ob jetzt alles seine Richtigkeit hat...
(Fehlermeldungen bekomme ich keine smile.gif  )
Also, wenn es funktioniert, dann ist es doch gut. Konnte auf den ersten Blick nichts entdecken ...

ZITAT
Es flitzen wohl -bei den Kill-Vorgängen- noch die DOS-Fensterchen über den Bildschirm; läßt sich das auch noch abstellen?

Verwende die Run-Methode so:
QUELLTEXT
Dim PV_EXE

PV_EXE = "C:ConScriptsProgViewpv.exe"



...



WSHShell.Run PV_EXE & " -c MSIMN.EXE", 0, True
[list]Das mit PV_EXE ist nur, damit man nicht mehrmals den EXE-Pfad eingeben muss.

[*]Das Argument 0 bei der Run Methode bewirkt, dass das Programm mit verstecktem Fenster gestartet wird!

[*]Das Argument True bei der Run Methode bewirkt, dass die Skript-Ausführung angehalten wird, bis pv.exe beendet wurde, d.h. Du kannst die Sleep-Befehle nach den Run-Aufrufen löschen![list]
ZITAT
Mit den 'F4' Anschlägen schließe ich die BrowserFenster die komischerweise geöffnet blieben...

Seltsam" Bei mir werden alle Internet Explorer Fenster geschlossen! Hatte zur Probe 20 Browser Fenster geöffnet.

cu, helpy

Geschrieben von: Conny 29.02.2004 - 12:18

Hi,
Danke für den weiteren Tipp mit der 'RUN' Methode biggrin.gif


ZITAT
Seltsam" Bei mir werden alle Internet Explorer Fenster geschlossen! Hatte zur Probe 20 Browser Fenster geöffnet.

Kann ich mir auch nicht so richtig erklären, vielleicht weil ich die Option 'separates browsen in jedes Fenster' -oder so ähnlich- aktiviert habe?? Verwende übrigens IE 5.5.

cu
Conny

Geschrieben von: Conny 01.04.2004 - 0:21

Hallo,
welche Befehlszeile steckt hinter der Frage 'Soll die bestehende Internetverbindung getrennt werden?' Klick auf ok trennt dann die Internetverbindung.
Manche (Update) Programme verwenden diesen Dialog, ich hätte nun gerne gewusst was dahinter steck; ich möchte mein VB Script um diese Funktion erweitern...

cu
Conny

Geschrieben von: helpy 01.04.2004 - 7:16

Guten Morgen Conny,

Mit Board-Mitteln von VBScript geht das nicht ...

Unter Windows NT/2000 gibt es den Befehl RASDIAL. Mit diesem Befehlszeilen-Tool kann man Internet-Verbindungen aufbauen und auch abbauen (rasdial /disconnect).

Für Windows95/98/ME gibt es evt. irgendwo im Internet ein Tool, zum runterladen ... hmm ...

Ich hab' gerade entdeckt, dass dieses Tool RasDial95 heißt, und noch auf meiner Festplatte "liegt". Falls ich es Dir zuschicken soll, melde Dich noch mal.

cu, helpy

Geschrieben von: Conny 01.04.2004 - 8:44

Hi Helpy,
das das so ohne Weiteres nicht geht habe ich schon befürchtet :cry:
Wenn ich RNAAPP.EXE kappe, wird zwar die Verbindung getrennt, das Sytem aber auch instabil :?

RasDial95 klingt interessant, wäre lieb wenn du es mir schicken könntest biggrin.gif
(info ät trimmelterhof punkt de)

cu
Conny

Geschrieben von: Conny 01.04.2004 - 11:52

@ Helpy
Vielen Dank!

Habe es bereits 'eingebaut' und klappt wunderbar! biggrin.gif

You made my day! biggrin.gif
cu
Conny

Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)