Beiträge von Greek

    Ich glaub nicht das dies geht, es gibt Funktionspointer, aber selbst die ruft man wieder mit () auf und in einer struct funktionieren sie so auch nicht.


    Aber du könntest im Konstruktor die value mitgeben, dann kann man es als Property machen:



    ( Ist C++, kann kein Lua )


    Gruß Greek

    Die Funktion hat bei mir auch nie funktioniert, hab immer falsche Werte bekommen.


    Probier es mal damit, die Funktion hat zumindest bei mir jedes mal die richtigen Werte zurückgeliefert:


    Edit BugFix: Code entfernt -- Don't feed the troll!
    [CLOSED]

    Weis nicht ob i2c das mit dem Link zeigen wollte, aber kann ja sein das du es übersiehst:


    Zitat

    AutoIt Previous Versions – v3.2.12.1 was the last version that was compatible with Windows 95 and Windows NT 4.0.


    Gruß Greek

    Hier ein Beispiel noch mit xPath:



    Aufbau meiner XML Datei ( ungefähr so wie deine ):



    Der Link zu dem XML Parser ist leider nicht mehr verwendbar, da fehlt irgendwie die hälfte, also einfach das benutzen was ich benutz hab.


    Gruß Greek

    Send kann man schon benutzen, ist zwar sch*** aber egal ^^


    Du hast bei WinWaitActive kein Timeout angegeben, vielleicht wartet er da ewig. Allgemein kannst du in dein Script Msgbox(0,"","Line: etc") machen um zu sehen wie weit er kommt.


    Das hier:


    WinActivate($Titel)
    If Not (WinWaitActive($Titel)) Then
    $vError=1
    Else


    Brauchst du auch denk ich nicht jedesmal machen, einmal am Anfang reicht.


    Ansonsten noch zu den Operatoren:

    Zitat

    = Tests if two values are equal. e.g. If $var= 5 Then (true if $var equals 5). Case insensitive when used with strings.


    Zitat

    == Tests if two strings are equal. Case sensitive. The left and right values are converted to strings if they are not strings already. This operator should only be used for string comparisons that need to be case sensitive


    Also in AutoIt kannst du auch = verwenden.

    Bei mir matcht das _StringBetween garnicht ?


    Man sollte vl. noch die Beschreibung mit speichern, ich hab 3 Stück drin. Wär vl. mit RegEx einfacher:


    #include <Constants.au3>
    #include <array.au3>
    #include <string.au3>


    Dim $cmd = 'ipconfig /all'
    Dim $pid = Run(@ComSpec & " /c " & $cmd, "", @SW_HIDE,$STDOUT_CHILD)
    Dim $output = ""


    While ProcessExists($pid)
    $output &= StdoutRead($pid)
    WEnd


    ConsoleWrite($output & @CRLF)


    $aResult = StringRegExp($output,"Beschreibung.*?:\s(.+?)\r\n.+?:\s(.+?)\s",3)
    _ArrayDisplay($aResult)

    Zitat

    Hab ich das so weit richtig verstanden?


    Nein,


    der 1. Parameter ist dein Kompletter Text.


    das Ergebnis steht dann zwischen dem Text von Parameter 3 und Parameter 4.


    In der Hilfe ist ein Beispiel:


    #include <String.au3>
    #include <Array.au3>


    _Main()


    Func _Main()
    Local $aArray1 = _StringBetween('[18][20][3][5][500][60]', '[', ']')
    _ArrayDisplay($aArray1, 'Default Search')
    EndFunc ;==>_Main


    Gibt also alles zwischen [ und ] aus.

    Hier:


    #include <Array.au3>


    $sLog = FileRead("deinLog.txt")


    $aRegEx1 = StringRegExp($sLog,"(?s)(?<=\[).+?(?=End)",3)


    _ArrayDisplay($aRegEx1)


    $aRegEx2 = StringRegExp($sLog,"(?s)\^\d+\s(.*?)\s.*?\s.*?\s.*?\s(.*?)\s",3)


    _ArrayDisplay($aRegEx2)


    Noch nen hübsches Schleifchen drum machen und fertig.


    Datum hab ich weg gelassen, das ist ja trivial.


    Edit:


    Sehe gerade das du RegEx noch nicht so kannst, also hier nochmal gleich mit Datum:


    (?s)(?<=\[)(.+?)\s(.+?)\s(.+?)(?=End)


    ( Datum und Uhrzeit hab ich mal getrennt, je nach dem wie du es willst )

    Dann habe ich noch eine Frage. Wo bestimmst du in deinem Bespiel mit der Uhr die Position der Uhr auf dem Desktop?



    $hGui=GUICreate("Uhr", $GUIBreite, $GUIHoehe, Default, Default, $WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOOLWINDOW,$WS_EX_TOPMOST))
    GUISetBkColor(0x000000)


    Sind das hier die Default Einträge?


    Steht in der Hilfe bei GUICreate


    Zitat

    left [optional] The left side of the dialog box. By default (-1), the window is centered. If defined, top must also be defined.
    top [optional] The top of the dialog box. Default (-1) is centered


    -1 kann man auch statt Default schreiben.

    Wie name22 schon sagt, mach es mit GDIp


    "Löschen" kann man das alte gezeichnet übrigens nicht, man muss einfach nochmal ( in deinem Beispiel jedenfalls ) mit schwarz drüber zeichnen.


    Hab noch was gefunden, was ich vor 3-4 Jahren mal gemacht hab, zur Veranschaulichung:



    _GDIPlus_GraphicsClear($hGraphic,0xFF000000)


    Der Befehl zeichnet nochmal über alles drüber mit schwarz, dadurch verschwindet die alte Zeit immer.
    _WinAPI_SetLayeredWindowAttributes($hGui, 0x000000, 0,0x01)
    Hier sag ich noch das die Farbe Schwarz transparent sein soll.


    Gruß Greek

    Hiho,


    lern gerade ein wenig RegExp und habe folgenden Text :



    So könnte man es machen:


    $aExp1 = StringRegExp($file,"(?s)(?<=startString).+?(?=endString)",3);
    $aExp2 = StringRegExp($aExp1[0],"<a>(.+?)</a>",3); // und noch für $aExp1[1]


    _ArrayDisplay($aExp2)


    Ich frag mich ob man das auch in einem Ausdruck machen kann?


    Meine Ansätze:


    StringRegExp($file,"(?s)(?<=startString).+?<a>(.+?)</a>.+?(?=endString)",3);
    StringRegExp($file,"(?s)(?<=startString).+?(<a>(.+?)</a>.+?)+(?=endString)",3);


    Das erste gibt aber nur den 1. und das 2. gibt nur den 2. . Gibts auch einen der alle matcht?


    Gruß Greek

    Hi,


    du kannst auch einfach auf ein transparentes Fenster zeichnen.


    Beispiel:



    Gruß Greek


    Edit:


    Ah hab was vergessen, man kann nicht mehr hindurch drücken, dafür gibts aber eine Lösung - moment.


    Edit2: