retrodude
Goto Top

Scriptresultate in Fenster sammeln

Hallo

Ich möchte sämtliche Messageboxeinträge in einem Fenster gesammelt auflisten können. So dass man nach Ablaufen des Scripts eine kleine Übersicht hat was sich alles zugetragen hat. So wie ein Hauptfenster mit Logteil. Kennt jemand eine Möglichkeit, wie sich dies realisieren lässt?

Gruss

Content-Key: 149205

Url: https://administrator.de/contentid/149205

Printed on: April 26, 2024 at 07:04 o'clock

Member: manuel-r
manuel-r Aug 18, 2010 at 06:22:31 (UTC)
Goto Top
Wenn du nur am Ende eines Scripts die verschiedenen Ereignisse anzeigen willst, die aufgetreten sind, dann schreibst du die entsprechenden Meldungen einfach in eine Variable und gibst deren Inhalt am Ende des Script per MsgBox aus. Für ein durchlaufendes Log verwende ich immer eine Ausgabe in einem IE-Fenster. Da lässt sich das recht schön und mit allen bekannten HTML-Mitteln umsetzen. Ein anderer Weg ist mir bisher auch (noch) nicht bekannt.

Manuel
Mitglied: 76109
76109 Aug 18, 2010 at 06:55:39 (UTC)
Goto Top
Hallo RetroDude!

Eine farbige Textausgabe in ein Shell-Fenster mit einstellbarer Größe, würde z.B. so gehen (VB-Script):
Option Explicit

Const WindowWidth = 480
Const WindowHeight = 320

Const BodyBG = "#FFFFFF"  

Const Black = "0"  
Const Red = "#FF0000"  
Const DarkBlue = "#00008B"  
Const DarkGreen = "#006400"  
Const DarkOrange = "#EE7600"  
Const DarkMagenta = "#8B008B"  

Dim Fso, HtaFile, HtaPath

'Main Beg  

    Call OpenHtaFile
    
    Call WriteHtaFile("Text in Schwarz", Black)  
    Call WriteHtaFile("Text in Rot", Red)  
    Call WriteHtaFile("Text in Blau", DarkBlue)  
    Call WriteHtaFile("Text in Grün", DarkGreen)  
    Call WriteHtaFile("Text in Orange", DarkOrange)  
    Call WriteHtaFile("Text in Margenta", DarkMagenta)  

    Call ShowHtaFile	
 
    Wscript.Quit

'Main End  

Private Sub OpenHtaFile()
    Set Fso = CreateObject("Scripting.FileSystemObject")  
    HtaPath = Fso.GetParentFolderName(WScript.ScriptFullName) & "\Ausgabe.Hta"  
    Set HtaFile = Fso.CreateTextFile(HtaPath)

    With HtaFile
        .WriteLine "<html>"  
        .WriteLine "<head>"  
        .WriteLine "<title>Textausgabe</title>"  
        .WriteLine "<SCRIPT Language='VBScript'>"  
        .WriteLine "WindowLeft = (Screen.Width - " & WindowWidth & ") / 2"  
        .WriteLine "WindowTop = (Screen.Height - " & WindowHeight & ") / 2"  
        .WriteLine "window.resizeTo " & WindowWidth & ", " & WindowHeight  
        .WriteLine "window.moveTo WindowLeft, WindowTop"  
        .WriteLine "</SCRIPT>"  
        .WriteLine "<style type='text/css'>"  
        .WriteLine "body { font-family:Arial, Tahoma; font-size:14px; background-color:" & BodyBG & "; }"  
        .WriteLine "</style></head>"   
    End With
End Sub

Private Sub WriteHtaFile(ByRef Text, ByRef Color)
    HtaFile.WriteLine "<font color='" & Color & "'>" & Text & "</font><br>"  
End Sub

Private Sub ShowHtaFile()
    Dim Shell
    
    With HtaFile
        .WriteLine "</body>"  
        .WriteLine "</html>"  
        .Close
    End With
    
    Set Shell = CreateObject("Wscript.Shell")  

    Shell.Run HtaPath, 1, True

    Fso.DeleteFile HtaPath
End Sub

Gruß Dieter

[edit] Script geändert, sodass das Fenster auch mittig positioniert wird [/edit]
Member: RetroDude
RetroDude Aug 18, 2010 at 06:56:42 (UTC)
Goto Top
Hi

Haste mir ein kleines Besipiel für die Ausgabe in ein IE Fenster?

Gruss
Member: RetroDude
RetroDude Aug 18, 2010 at 06:58:17 (UTC)
Goto Top
Hallo Dieter

Danke, werds ausprobieren.

Gruss
Mitglied: 76109
76109 Aug 18, 2010 at 08:04:33 (UTC)
Goto Top
Hallo RetroDude!

Habe den Code insofern geändert, dass das Ausgabefenster in der Mitte positioniert wirdface-wink

Gruß Dieter
Member: RetroDude
RetroDude Aug 18, 2010 at 08:09:29 (UTC)
Goto Top
Habe noch das Problem, dass ich Rückgabewerte aus diversen Funktionen in dieses Fenster quetschen muss. Dies ist so nicht ohne weiteres möglich. Ich habe noch den Ansatz den VBS Code aus einem HTA auszuführen. So sollte diese Problematik entschärft werden könne. Muss mal ausprobieren.
Danke für deinen Input.

Gruss