PDA

Vollständige Version anzeigen : VBS - Meldung auf Bildschirm während Code-Ausführung


Nagus
23.04.2010, 11:20
Hallo,

Ich versuche mich in VBScript und betrete hierbei Neuland.
Da ich VBA-Kenntnisse habe, geht es zwar relativ gut, aber es gibt ja doch einige Eigenarten, die man erst herausfinden muss.

Die Skripts, die ich laufen lasse, laufen alle still ab, d.h. ich weiss nicht, ob und wie lange der Code läuft.
Am Ende des Codes schicke ich mir Emails zu, die mir den Status mitteilen.

Dennoch suche ich nach einer Möglichkeit (lediglich) während der Ausführung eine Meldung am Bildschirm anzeigen und danach wieder eigenständig verschwinden zu lassen.

Die beiden Optionen, die ich bereits ausprobiert habe - 'Wscript.Echo' und 'Popup' scheinen ungeeignet.
Das eine erwartet ein Klicken auf OK, damit der Code weiterläuft (WSCript.Echo), das andere verschwindet nur nach der vordefinierten Zeit.

Wie gehe ich vor?

Nagus
24.04.2010, 13:30
So, habe in der Zwischenzeit weitergefummelt. Es ist grausam, wie wenig wirklich nützliche Infos man im Inet zu VBS findet! Habe deswegen in der Zwischenzeit ein Buch bestellt und muss bis dahin selbst herausfinden, wie das eine oder andere geht.

Ich habe es mittlerweile geschaft, eine DOS-Box hochkommen zu lassen und darin einen Text erscheinen zu lassen. Mittels CScript und WScript.Echo kappt das.

Leider bleibt die DOS-Box aber nur für die kurze Zeit des WScript.Echo eingeblendet und verschwindet dann wieder. Mittels Sleep kann man das zwar steuern, aber ich weiss immmer noch nicht, wie ich es schaffe, die DOS-Box so zu programmieren, dass sie vor Beginn des eigentichen Codes erscheint, eine Meldung ausgibt und sich erst wieder 'auf Befehl' schliesst.

Kann mir denn da keiner helfen?

J_Eilers
26.04.2010, 06:55
Moin,

mit folgender Zeile bleibt dein Code so lange stehen, bis du einmal Enter in der DosBox drückst:

WScript.StdIn.ReadLine()

Nagus
26.04.2010, 20:10
Hallo Jan,

danke für dein Feedback.
Ich habe es in der Zwischenzeit dann doch irgendwie hinbekommen, weiss nicht so recht wie, aber ich vermute es lag am unsachgemässen Einsatz von 'CScript //H:CScript'.

Jetzt klappt es jedenfalls, wie es soll.

_anton_
26.04.2010, 21:20
Hallo Martin,

du kannst den IE dafür missbrauchen:
<fieldset><legend>Code:</legend><div ID='code'><span style="font-family: Courier New,FixedSys;"><br><span style="color: #0000CC;">Set</span> ie4 = CreateObject(&quot;InternetExplorer.Application&quot;) &nbsp; <br>ie4.navigate (&quot;about:blank&quot;)<br><span style="color: #0000CC;">With</span> ie4 <br>&nbsp; .AddressBar = <span style="color: #0000CC;">False</span> <br>&nbsp; .MenuBar = <span style="color: #0000CC;">False</span> <br>&nbsp; .StatusBar = <span style="color: #0000CC;">False</span> <br>&nbsp; .Toolbar = <span style="color: #0000CC;">False</span> &nbsp;<br>&nbsp; .Height = 200<br>&nbsp; .Width = 400<br>&nbsp; .Top = 300 <br>&nbsp; .Left = 300<br><span style="color: #0000CC;">End With</span> &nbsp;<br>ie4.Visible = <span style="color: #0000CC;">True</span> <br>ie4.document.body.innerHTML = &quot;&lt;center&gt;&lt;b&gt;Bitte warten!&lt;/b&gt;&lt;/center&gt;&quot;<br>ie4.document.Title = &quot;Bitte warten!&quot;<br><span style="color: #009900;">'dein weiterer Code oder</span><br>wscript.sleep 5000<br>ie4.document.body.innerHTML = &quot;&lt;center&gt;&lt;b&gt;Bin am Malochen.&lt;/b&gt;&lt;/center&gt;&quot;<br>wscript.sleep 5000<br>ie4.Quit<br><span style="color: #0000CC;">Set</span> ie4 = Nothing &nbsp;<br></span></div><br></fieldset>

mfg Anton

Nagus
26.04.2010, 21:24
Cool!