WSH: Objekt starten und nach Zeit beenden / oder gleich minmiert

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.125
Moin!

Code:
set ieobj = createobject("internetexplorer.application")
ieobj.visible=true
ieobj.navigate "http://irgdnwo.de"
wscript.sleep 6000
ieobj.quit
Vermutlich ist klar was hier geschieht - der IE wird mit einer URL geöffnet, als Fenster, und er wird nach 6 Sekunden beerdigt.

6 Sekunden sollen auch der Ladegeschwindigkeit des WWW geschuldet sein.

Wie kann ich (und es geht ums Lernen)…
1. den IE minimiert mit dieser Syntax starten? (WshShell.Run … ,2 wollte ich mal ersetzen)
2. wenn, wie jetzt, sichtbar und von Hand meuchlerisch beendet, den Error den die letzte Zeile bringt abfangen?

Google hilft nichts.
Ich hatte Ideen das .visible durch etwas zu ersetzen oder für die 2. Frage eine Art If exist anzubringen. Ist an diesen Stellen etwas zu drehen? Das Skript soll per Scheduler aufgerufen werden und schön unauffällig seinen Dienst tun. Eine Variante wäre aber gut das IE-Fenster sichtbar zu haben (die URL gibt eine Rückmeldung); lesen reicht, schließen tut das Skript. Nur gibts da natürlich ganz Schnelle beim Zumachen…

CN8
 
Kann es sein, daß hier VBA und VBS Befehle vermischt wurden? Soll es aus einer .vbs oder .exe gestartet werden?

Mit AutoIt würde ich es in eine Schleife setzen und so immer grundsätzlich einen Refresh durchführen (keine Ahnung, ob Dein WSH?! auch sowas kann):
Code:
while 1
ShellExecute("iexplore.exe","www.computerbase.de","","",@SW_MINIMIZE)
sleep(6000)
ProcessClose("iexplore.exe")
wend

So würde es dann auch wieder automatisch bei "den Schnellen" aufgehen, ohne extra "abzufangen".
 
Tschö… Eine Exe mit AutoIt… Wäre auch ein Ansatz.
Allerdings habe ich da noch Weiteres in der VBS zu tun bei dem ich suchen müsste wie ich das in AutoIt bewerkstellige. Also sollten wir bei VBS bleiben.

Damit bleiben meine Fragen nach minimiertem Fenster und dem Fehlerabfangen offen. Da sich Minimiert und Sichtbar widersprechen können es gern weiter 2 Files bleiben, statt z.B. 2 Links mit Übergabeparametern.

CN8

PS: stammt alles aus einer WSH, also VBS-Datei; VBA wäre Zufall und ist auch nicht mit im Rennen.

Nachtrag:
Das mit AutoIt ist vielleicht sogar besser. Aber: die vorgeschlagene Syntax hat eine für mich gewaltige Macke die ich bei VBS nicht hatte; wenigstens ist sie mir bei Tests nicht aufgefallen: es wird nämlich keine autarke Instanz des IE gestartet sondern der Link geht in einem Tab auf und dann wird (rumms) der IE mit allen bisherigen Tabs gekillt. Das geht nun gar nicht. Wie ist das in AutoIt zu lösen?

Nachtrag2:
Code:
#include <MsgBoxConstants.au3>
#include <Inet.au3>
#include <IE.au3>
Local $IPAdr = _GetIP()
$IE = _IECreate("www.ich_mach_was_mit_IP.info/" & $IPAdr)
sleep(6000)
_IEQuit($IE)
MsgBox($MB_SYSTEMMODAL, "", "Your external IP address is: " & $IPAdr)
Sieh an, AutoIt macht das Gewollte in effektiv 6 Zeilen. Und wenn ich den $IE per Hand schließe wird der _IEQuit ohne Meldung übergangen. Ich muss _IECreate nur noch mit $iVisible garnieren.
 
Zuletzt bearbeitet:
Oh; Gott bewahre ;), ich war nicht auf den IE aus.
Nur darauf die externe IP zu erfragen und über einen Webaufruf zu verwenden. Der IE ist immer da, also bot er sich an die URL auszulösen. Purer Prgamatismus.

Mich hätte mehr interessiert was an Syntaxmöglichkeit VBS hier hat um den Ausschnitt nach den Eingangs genannten Wünschen zu frisieren.
Dass AutoIt das Kind schaukelt soll unser Schade nicht sein.

CN8
 
Zurück
Oben