THERES: Textausgabe in Fenster

Hallo

Ich möchte mit VBS eine Ausgabe wie beim ausführen eines Batch-Files erzeugen. D.h. ich suche ein Objekt, mit welchem ich ein Fenster öffnen kann und das eine Methode besitzt, mit welcher ich in dieses Fenster schreiben kann. Leider finde ich nix.

Im Grundsatz würde mich noch interessieren, ob ihr eine Seite kennt, wo man eine vernünftige Objektreferenz für VBS und den ScriptingHost etc findet...

Danke und Grüsse
Theres

  1. Hallo Theres,

    Ich möchte mit VBS eine Ausgabe wie beim ausführen eines Batch-Files erzeugen. D.h. ich suche ein Objekt, mit welchem ich ein Fenster öffnen kann und das eine Methode besitzt, mit welcher ich in dieses Fenster schreiben kann. Leider finde ich nix.

    bin etwas in Eile, deshalb nur ein paar Anregungen:

    strPfad = "C:\Test\test.txt"
    strText = "Halli hallo"

    Set fso = CreateObject("Scripting.FileSystemObject")

    'Text in Textdatei schreiben:
    Set objDatei = fso.OpenTextFile(strpfad, 2, True)
    objDatei.write strText
    objDatei.Close

    'Meldung:
    msgbox strText, vbokonly + vbinformation, "Meldung"

    'Text im Editor anzeigen:
    Set objShell = CreateObject("WScript.Shell")
    objShell.run "notepad.exe " & strPfad,3

    Viele Grüße

    Jörg

    1. Hallo Jörg

      Besten Dank für Deinen Input, einiges davon habe ich umgesetzt, leider ist dies aber für die Benutzer noch zu wenig....

      Im Moment schreibe ich mit Deinem ersten Vorschlag eine Logdatei. Die msgbox-Lösung hatte ich auch, das hat aber zur Folge, dass das Skript stehen bleibt, solange der Benutzer nicht 'OK' klickt und ist somit keine valable Lösung.

      Wichtig wäre, dass ich dem Benutzer aktuelle Statusinformationen liefern kann. Im Skript werden Grafikdateien erzeugt. Je nach selektionsmenge des Users können dies hunderte sein. Da die Ausführung des Reports sehr lange dauern kann, soll der Benutzer nun jederzeit wissen, was gerade geschieht, respektive ob der Export noch läuft.

      Am liebsten hätte ich halt eine Möglichkeit, analog System.out.println("File xy created"); in JAVA.
      Die Notepad Variante scheint mir dabei kein gangbarer Weg zu sein, da müsste ich ja in jedem Schleifendurchgang ein neues Notepad öffnen... Oder kann ich dem erzeugten Notepad-Objekt auch nach dessen Erzeugung neuen Text zuweisen?

      Danke und Grüsse
      theres

      1. Hallo Theres,

        Im Moment schreibe ich mit Deinem ersten Vorschlag eine Logdatei. Die msgbox-Lösung hatte ich auch, das hat aber zur Folge, dass das Skript stehen bleibt, solange der Benutzer nicht 'OK' klickt und ist somit keine valable Lösung.

        Die Notepad Variante scheint mir dabei kein gangbarer Weg zu sein, da müsste ich ja in jedem Schleifendurchgang ein neues Notepad öffnen... Oder kann ich dem erzeugten Notepad-Objekt auch nach dessen Erzeugung neuen Text zuweisen?

        Ja, Du könntest z. B. mit Sendkeys arbeiten - das ist aber ziemlich anfällig. Ich würde es nicht empfehlen.

        Hier ist noch eine Alternative:

        Set objShell = CreateObject("WScript.Shell")

        objShell.run "cmd.exe"
        WScript.Sleep 100
        objShell.sendkeys "cls{Enter}echo Das ist mein Text."
        objShell.sendkeys "{Enter}Das ist mein nächster Text."

        So könntest Du mit den herkömmlichen DOS-Befehlen arbeiten. Frage mich aber bitte nicht danach, damit habe ich vor vielen Jahren mal gearbeitet. ;-)

        Ach so - je nachdem, was Deine Anwendungen so machen, musst Du ggf. das cmd-Fenster mit AppActivate wieder in den Vordergrund holen.

        Viele Grüße

        Jörg