Variable in mehreren Funktionen benutzen

  • Hallo...

    ich bin seit samstag unter die AutoITler gegangen und habe sehr viel spaß daran, lesen, probieren, etc. ;)

    Ich habe aber ein problem mit meiner variable: $ende.
    Diese variable wird zuerst in der funktion " _ende()" benutzt, und danach in der funktion "_log"
    AutoIt meckert aber, daß die variable nicht definiert sei. Ich benutze sie nicht im script, sondern nur in den funktionen.

    Wie schaffe ich es, den Fehler zu umgehen ? Dim, Local, Global haben mir nicht geholfen..

    Und vielleicht habt ihr noch Tipps, um das ganze schöner zu gestalten ;) Funtionieren tut es... aber "die optik" soll auch stimmen ;)

    [autoit]

    Func _ende()
    $ende = round(TimerDiff($start)/1000,2)
    _log()
    $message = "Aktionen: " & $aktionen& @CRLF & "Dauer: " & $ende & " sec"
    MsgBox(064,"Information", $message, 60)
    Exit
    EndFunc

    [/autoit]

    funktion _ende ruft function _log auf.

    [autoit]

    Func _log()
    if $aktionen> 10 Then
    $ende = round(TimerDiff($start)/1000,2) ;<== ich muss die variable ein zweites mal berechnen
    $datei = "D:\programme\autoit\log.txt"
    $datum = @mday & "." & @mon & "." & @year
    $zeit = @hour & ":" & @min & ":" & @sec
    Dim $msg[4]
    $msg[0] = "--------------------------------------------------------------"
    $msg[1] = "Datum: " & $datum & " - " & $zeit
    $msg[2] = "Aktionen: " & $aktionen
    $msg[3] = "Dauer: " & $ende & " sec"
    For $z = 0 To Ubound($msg) - 1
    FileWriteLine($datei,$msg[$z])
    Next
    EndIf
    EndFunc

    [/autoit]
  • danke dir, das werde ich tun.

    habe wieder ein problem.. habe gerade die funktion WinMenuSelectItem entdeckt..

    [autoit]

    Opt("WinTitleMatchMode",2)
    WinActivate("Mozilla Firefox")
    WinMenuSelectItem("Mozilla Firefox","","&Lesezeichen", "Lesezeichen hinzufügen")

    [/autoit]

    das fenster wird gefunden und aktiviert. aber danach ist ende, der klick auf "lesezeichen" erfolgt nicht. die schreibweisen sind auch richtig...

    :?:

  • aha ich lese gerade das in der hilfe...

    Zitat

    WinMenuSelectItem" arbeitet nur mit Standard-Menüs. Unglücklicherweise sind viele Menüs heute speziell geschrieben oder Symbolleisten, die nur so tun also ob sie Menüs wären. Dies gilt z.B. für die meisten Programme von Microsoft.


    das geht als im FF nicht ?

  • Zum eigentlichen Problem man könnte auch

    aus der eine Funktion $ende wieder zurückgeben und den Wert wieder in die nächste Funktion übergeben.

    [autoit]


    Func _Ende()
    $ende = ...
    ...
    .......
    ........
    Return $ende
    Endfunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _Log($ende)
    Filewriteline($log,$ende & " - " $msg)
    ....
    Endfunc

    [/autoit]

    Und zum FireFox da gibts ne erweiterete UDF und ein FF Plugin was evtl. noch benötigt wird.
    Vielleicht geht es dann.

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o