![]() |
Willkommen, Gast ( Anmelden | Registrierung )
![]() |
![]()
Beitrag
#1
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hallo,
ich schon wieder ![]() 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 |
|
|
![]() |
![]()
Beitrag
#2
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
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 |
|
|
![]()
Beitrag
#3
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
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 |
|
|
![]()
Beitrag
#4
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
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 |
|
|
![]()
Beitrag
#5
|
|
Ausnahme Poster ![]() Gruppe: User Beiträge: 150 Mitglied seit: 24.10.2003 Wohnort: Berlin Mitglieds-Nr.: 1.544 ![]() |
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! |
|
|
![]()
Beitrag
#6
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
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 |
|
|
![]()
Beitrag
#7
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
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 |
|
|
Gast_Tom._* |
![]()
Beitrag
#8
|
Gäste ![]() |
ZITAT QUELLTEXT MsgBox "Ich liebe Dich!" ...was werkelst Du denn da???! :oops: ![]() |
|
|
![]()
Beitrag
#9
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
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 |
|
|
![]()
Beitrag
#10
|
|
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,
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 |
|
|
![]()
Beitrag
#11
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
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 |
|
|
![]()
Beitrag
#12
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
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 |
|
|
![]()
Beitrag
#13
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hallo Helpy,
Du hast mich schon ein Stück weitergeholfen ![]() Jetzt habe ich folgende Variante 'gebastelt' und sie funktioniert! ![]() 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 |
|
|
![]()
Beitrag
#14
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
Hi Conny,
ZITAT Jetzt habe ich folgende Variante 'gebastelt' und sie funktioniert! ![]() 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 |
|
|
![]()
Beitrag
#15
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
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 ![]() 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 |
|
|
![]()
Beitrag
#16
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
|
|
|
![]()
Beitrag
#17
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
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 |
|
|
![]()
Beitrag
#18
|
|
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,
ich bin's noch mal, habe die exe gezogen... sehr Interessant! Vielen Dank!! Conny |
|
|
![]()
Beitrag
#19
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
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 |
|
|
![]()
Beitrag
#20
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Helpy, alles klar!
auch ich habe 5.6 auf'm Rechner. Jetzt kann ich dann richtig loslegen! ![]() cu Conny |
|
|
![]()
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 |
|
|
![]()
Beitrag
#31
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
Hi Conny,
Vielleicht hilft es Dir, auf ein Befehlszeilen-Tool zurückzugreifen: Process Viewer for Windows. 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 |
|
|
![]()
Beitrag
#32
|
|
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,
Alles KLAR ![]() 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 ![]() 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 |
|
|
![]()
Beitrag
#33
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
ZITAT Schau doch noch mal drüber ob jetzt alles seine Richtigkeit hat...
Also, wenn es funktioniert, dann ist es doch gut. Konnte auf den ersten Blick nichts entdecken ...
(Fehlermeldungen bekomme ich keine ![]() 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 [list]Das mit PV_EXE ist nur, damit man nicht mehrmals den EXE-Pfad eingeben muss.
PV_EXE = "C:ConScriptsProgViewpv.exe" ... WSHShell.Run PV_EXE & " -c MSIMN.EXE", 0, True [*]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 |
|
|
![]()
Beitrag
#34
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
Hi,
Danke für den weiteren Tipp mit der 'RUN' Methode ![]() 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 |
|
|
![]()
Beitrag
#35
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
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 |
|
|
![]()
Beitrag
#36
|
|
;-) ![]() Gruppe: Mods Beiträge: 246 Mitglied seit: 20.11.2001 Mitglieds-Nr.: 15 ![]() |
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 |
|
|
![]()
Beitrag
#37
|
|
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,
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 ![]() (info ät trimmelterhof punkt de) cu Conny |
|
|
![]()
Beitrag
#38
|
|
Kommt Zeit, kommt Rat, kommt Conrad! ![]() Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 ![]() |
@ Helpy
Vielen Dank! Habe es bereits 'eingebaut' und klappt wunderbar! ![]() You made my day! ![]() cu Conny |
|
|
Google Bot |
![]()
Beitrag
#
|
![]() Google Ads ![]() |
|
|
|
![]() ![]() |
![]() |
Vereinfachte Darstellung | Aktuelles Datum: 06.07.2025 - 12:25 |