Moin,
zum debuggen habe ich mir eine kleine Funktion geschrieben.
Spoiler anzeigen
#include <date.au3> ; _Now()
#include <file.au3> ; _FileWriteLog()
#include <debug.au3> ; _DebugSetup()
;----------------
$iTimeAll = TimerInit()
$iTimeSection = TimerInit()
Global $giLoop = 0 ; Schleifenvariable für __cwt
Global $giCWT = 1 ; Ausgabensteuerung
;----------------
$sLog = StringTrimRight(@ScriptName, 4) & ".log"
$sIni = StringTrimRight(@ScriptName, 4) & ".ini"
$sDebugLog = StringTrimRight(@ScriptName, 4) & "_Debug.log"
;----------------
__cwt(" ", "|0014|", "Wie lange dauert der Funktionsaufruf __test()", $giCWT)
__test(2)
__cwt(" ", "|0016|", "<-- Im Timerfeld stehen die Ausführungszeiten", $giCWT)
__test(5)
__cwt(" ", "|0018|", "<-- Im Timerfeld stehen die Ausführungszeiten", $giCWT)
__cwt(" ", "|0019|", " -----------------------------------------", $giCWT)
ConsoleWrite(@CRLF & @CRLF)
__cwt(" ", "|0021|", "Ausgabe in der Scite Konsole schwarz")
__cwt(" ", "|0022|", "15 durch freistehende Ziffer wird die Ausgabe in lila dagestellt. Mit Mausklick auf die Ziffer wird zur Zeile=Ziffer gesprungen")
__cwt("!", "|0023|", "Ausgabe in der Scite Konsole rot")
__cwt("+", "|0024|", "Ausgabe in der Scite Konsole grün")
__cwt(">", "|0025|", "Ausgabe in der Scite Konsole blau")
__cwt("-", "|0026|", "Ausgabe in der Scite Konsole orange")
ConsoleWrite(@CRLF & @CRLF)
__cwt("+d", "|0028|", "Ausgabe in der Scite Konsole grün und mit Datumsangabe")
__cwt("+d", "|0029|", "Ausgabe in der Scite Konsole grün und mit Datumsangabe, Timerausgabe rechtsbündig", -1)
__cwt(" ", "|0030|", "Ausgabe als TrayTip", 4)
ConsoleWrite(@CRLF & @CRLF)
For $i = 1 To 3
$giLoop += 1
__cwt(" ", "|0034|", "Ausgabe in der Scite Konsole schwarz, mit Schleifenvaribale $giLoop")
Sleep(2000)
Next
Func __test($t)
Sleep($t * 1000)
EndFunc
;----------------
Func __cwt($sNow=" ", $sLN="|0042|", $sString="", $iFlag=1)
;===============================================================================
; Function Name: __cwt($sNow, $sSLN, $sString, $iFlag)
; Description: Mit dieser Funktion kann die Ausgabe des zu übergebenen String gesteuert werden.
; Parameter(s): $sNow:
; 1. Zeichen optional
; 1. Zeichen = "!" <-- In rot wird die Ausgabe dagestellt
; 1. Zeichen = "+" <-- In grün wird die Ausgabe dagestellt
; 1. Zeichen = ">" <-- In blau wird die Ausgabe dagestellt
; 1. Zeichen = "-" <-- In rot wird die Ausgabe dagestellt
; 2. Zeichen optional
; 2. Zeichen = "d" <-- Das aktuelle Datum in der Form "25.09.2010 14:54:19" wird ausgegeben
;
; $sLN:
; Zeilennummerübergabe
; $sLN=@ScriptLineNumber funktioniert nicht wenn kompiliert
; $sString:
; - Der übergebene String
; - Ist im Sring eine freistehende Ziffer dann,
; frei stehende Ziffer=pink mit Sprung zur Zeile Ziffer, (Ziffer)=rot mit Sprung zur Zeile Ziffer
; mit Mausklick auf die Ziffer wird zur Zeile=Ziffer gesprungen
; $iFlag:
; wenn $iFlag negativ, dann $iTimerSection und $iTimerAll rechtsbündig
; 1 <-- Ausgabe auf die Konsole
; 2 <-- Ausgabe in die Log-Datei (Variable $sLog)
; 4 <-- Ausgabe als TrayTip
; 8 <-- Ausgabe durch die Variable _DebugOut bestimmt
; 16 <-- Ausgabe in das debug Fenster von Sysinternals
;
; Wenn Schleifenvaribale $giLoop > 0 dann wird sie hier ausgegeben
; Requirement(s): -
; Return Value(s): -
; Author(s): Paule (http://www.autoit.de)
;===============================================================================
Local $i, $d, $l
If $giLoop > 0 Then $i = @TAB & StringFormat("|%04s|", $giLoop)
If StringLen($sNow) = 2 And StringMid($sNow, 2, 1) = "d" Then
$d = StringLeft($sNow, 1) & _Now() & @TAB
Else
$d = StringLeft($sNow, 1)
EndIf
Local $sTime = StringFormat("(%-12s)", __TicksToTimeFormat(TimerDiff($iTimeSection)) & " " & __TicksToTimeFormat(TimerDiff($iTimeAll)))
Local $left = $d & $sLN & $i & @TAB & $sTime & @TAB & $sString & @CRLF
Local $right = $d & $sLN & $i & @TAB & $sString & @TAB & $sTime & @CRLF
Local $msg = $left
If $iFlag < 0 Then
$iFlag = Abs($iFlag)
$msg = $right
EndIf
If BitAND($iFlag, 1) = 1 Then ConsoleWrite($msg)
If BitAND($iFlag, 2) = 2 Then _FileWriteLog($sLog, $msg)
If BitAND($iFlag, 4) = 4 Then TrayTip("__cwt()", $msg, 2)
If BitAND($iFlag, = 8 Then _DebugOut(StringTrimRight($msg, 2))
If BitAND($iFlag, 16) = 16 Then __dbg($msg)
$iTimeSection = TimerInit()
EndFunc
;----------------
Func __TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss:%ms')
;===============================================================================
; Function Name: _TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss')
; Description:: Diese Funktion wandelt Millisekunden in ein anzugebenes Zeitformat um
; Parameter(s): $iTicks = Zeit in Millisekunden
; $sFormat:
; %ww für Wochen
; %dd für Tage
; %hh für Stunden
; %mm für Minuten
; %ss für Sekunden
; %ms für Millisekunden
; sonstige Zeichen, die dazwischen stehen, werden übernommen
; Requirement(s): -
; Return Value(s): Zeit im ausgewählten Format (String)
; Author(s): Oscar (http://www.autoit.de)
;===============================================================================
Local $aTime[6], $sOut, $aTimeFormat[6] = ['ww', 'dd', 'hh', 'mm', 'ss', 'ms'], $aFormat
$aTime[4] = Int($iTicks / 1000)
$aTime[5] = $iTicks - $aTime[4] * 1000
$aTime[0] = Int($aTime[4] / 604800)
$aTime[4] = Mod($aTime[4], 604800)
$aTime[1] = Int($aTime[4] / 86400)
$aTime[4] = Mod($aTime[4], 86400)
$aTime[2] = Int($aTime[4] / 3600)
$aTime[4] = Mod($aTime[4], 3600)
$aTime[3] = Int($aTime[4] / 60)
$aTime[4] = Mod($aTime[4], 60)
$aFormat = StringRegExp($sFormat, '%([^%]+)', 3)
If Not IsArray($aFormat) Then Return SetError(1, 0, $iTicks)
For $i = 0 To UBound($aFormat) - 1
For $j = 0 To UBound($aTimeFormat) - 1
If StringLeft($aFormat[$i], 2) = $aTimeFormat[$j] Then $sOut &= StringFormat('%0' & 2 + ($j=5) & 'i', $aTime[$j]) & StringMid($aFormat[$i], 3)
Next
Next
Return $sOut
EndFunc ;==>_TicksToTimeFormat
;----------------
Func __dbg($msg)
;use debugview from sysinternals
;http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx Download
;http://msdn.microsoft.com/en-us/library/ms679303(VS.85).aspx Functions
DllCall("kernel32.dll", "none", "OutputDebugString", "str", @ScriptName & " " & $msg)
EndFunc ;==>dbg
;----------------
Gruß Paule