Aktion bei TrayTip-Klick

  • Also ich habe mal ne frage:
    Kann man es irgendwie einrichten dass wenn man auf den angezeigten traytip
    klickt eine aktion durchgeführt wird?
    oder muss ich mir da was anderes überlegen?

    Spoiler anzeigen

    hier das Skript:

    [autoit]

    $IE = _IECreate("http://autoit.aufwaerts.de/jgs_portal_checker.php?", 0, 0)
    $Read = _IEBodyReadText($IE)
    $alt = StringSplit($Read, @LF)

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

    While 1
    _IEAction($IE, "refresh";)
    _IELoadWait($IE)
    $Read = _IEBodyReadText($IE)
    $Text = StringSplit($Read, @LF)

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

    For $i = 2 To $Text[0]-1
    If $Text[$i] <> $alt[$i] Then
    TrayTip("Neues Tema auf AutoIt.de", $Text[$i], 5)
    $Read = _IEBodyReadText($IE)
    $alt = StringSplit($Read, @LF)
    EndIf
    Next
    Sleep(1000)
    WEnd

    [/autoit]

    edit: filleicht hatt so ein TrayTip ja auch nen handle würd mir auch schon weiterhelfen!!


    diese frage hatte ich schonmal hier gestellt wude aber nicht beantwortet :(
    naja war ja auch in der OFF-Topic da gehört sowas eigentlich auch nich rein.

    Einmal editiert, zuletzt von Dustin (2. April 2007 um 15:18)

    • Offizieller Beitrag

    Also TrayTip hat keinen Rückgabewert. TraySetToolTip gibt zumindest bei Erfolg '1' zurück.
    Soweit ich sehen kann, wird aber durch ein Klick auf den Tip kein Ereignis ausgelöst.
    Etwas um die Ecke: Du kannst doch ermitteln, in welchem Sektor des Monitors der TrayTip erscheint. Frage ab, ob Übereinstimmung mit Mausposition und Klick ==> dann hast du dein Ereignis.

  • Ganz kurz: bin grad dabei einige Tray-Funktionen (_TrayCreateIcon, _TrayTip) in eine UDF umzusetzen.
    Ich hab die Funktionalität schon in 2 Skripts hier, aber noch nicht gerade benutzerfreundlich.
    Man kann dann u.a. auch Icons im Tray-Menu verwenden.
    Werde es dann auch mal hier posten...
    Melde mich spätestens nochmal nächste Woche zu dem Thema.

    Gruß
    Holger

    • Offizieller Beitrag

    Hallo!

    Ich hab mal ne _ToolTip funktion gemacht, vlt kannst du dir da was von abgucken...

    Spoiler anzeigen
    [autoit]

    $tool1 = _ToolTip("Test", 50, 50)
    Sleep(1000)
    $tool2 = _ToolTip("Test2", 90, 90)
    Sleep(500)
    _ToolTipDelete($tool1,1);Ausblenden und dann schließen
    Sleep(800)
    _ToolTipDelete($tool2);Hart schlißen

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

    Func _ToolTip($sText, $iX, $iY)
    ;By GtaSpider

    Local $RetAr[2]
    ;Mainfenster erstellen
    $tooltipmain = GUICreate("", 123, 123, $iX, $iY, -2147483648, 128);$WS_POPUP = -2147483648, $WS_EX_TOOLWINDOW = 128
    GUISetBkColor(0xFFFFE1)
    ;Label mit Text erstellen
    $lab = GUICtrlCreateLabel($sText, 3, 3)

    $cgp = ControlGetPos($tooltipmain, "", $lab);Labelgröße rausfinden
    WinMove($tooltipmain, "", $iX, $iY, $cgp[2], $cgp[3]);Gui perfekt formen
    ;Schatten erstellen
    $tooltipshadow = GUICreate("", 123, 123, $iX, $iY, -2147483648, 128);$WS_POPUP = -2147483648, $WS_EX_TOOLWINDOW = 128
    GUISetBkColor(0x0)
    WinSetTrans($tooltipshadow, "", 100)
    ;Schatten perfekt formen
    WinMove($tooltipshadow, "", $iX + 3, $iY + 3, $cgp[2], $cgp[3])
    ;OnTop
    WinSetOnTop($tooltipmain,"",1)
    WinSetOnTop($tooltipmain,"",2)
    ;Zeige Tooltip
    GUISetState(@SW_SHOW, $tooltipshadow)
    GUISetState(@SW_SHOW, $tooltipmain)
    ;Bereite das Return array vor, falls man das Tooltip wider entfernen will
    $RetAr[0] = $tooltipmain
    $RetAr[1] = $tooltipshadow
    Return $RetAr
    EndFunc ;==>_ToolTip

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

    Func _ToolTipDelete($aTooltiphwnd,$smooth=0)
    ;By GtaSpider

    ;Löscht das tooltip
    If $smooth Then ;Wenn smooth wahr ist dann wird ausgeblendet
    For $i = 255 To 0 Step -10
    WinSetTrans($aTooltiphwnd[0],"",$i)
    If $i < 101 Then WinSetTrans($aTooltiphwnd[1],"",$i)
    Sleep(10)
    Next
    EndIf
    GUIDelete($aTooltiphwnd[0])
    GUIDelete($aTooltiphwnd[1])
    EndFunc

    [/autoit]

    Mfg Spider

  • So ich habe mal ne frage zu dem script der dahintersteckt:

    ich versuch die tabelle wo die neuesten beiträge drinstehn auszulesern das funzt aber nich wirklich.

    hier das script:

    [autoit]

    $IE = _IECreate("http://autoit.aufwaerts.de/jgs_portal_box.php?id=18&sid=", 0, 0)
    $coll = _IETableGetCollection($IE, 0)
    $table = _IETableWriteToArray($coll)

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

    MsgBox(0, "", $table & @CRLF & @error) ;hier steht immer 0 und 4 drin

    [/autoit]


    kann mir da jemand helfen?

  • das wollt ich eigendlich nich also html auslesen und bearbeiten.
    ich wollte es eigendlich erstmal mit _IETable... probieren.
    und wenn das nich klappt dann mach ichs so wie du.

    • Offizieller Beitrag

    Hallo!

    Ja, das ich nich die ie.au3 benutz hängt damit zusammen, dass es damals die ie.au3 noch nich gab ;)

    zu deinem problem sehe ich keine lösung, sry.. also wenn man bei $coll ,1) hinten dran setzt dann gibts zumindestens ein array.. das bringt ein aber auch nich weiter weil $table[0][0] = "0" und $table[0][1] = "" ...

    Mfg Spider

  • also ich habe mal weiterprobiert und habe herausgefunden dass auf der seite "http://autoit.aufwaerts.de/jgs_portal_box.php?id=18&sid="
    18 Tabellen vorhanden sind (aus der hilfe):

    [autoit]

    $oIE = _IECreate ("http://autoit.aufwaerts.de/jgs_portal_box.php?id=18&sid=", 0, 0)
    $oTable = _IETableGetCollection ($oIE)
    $iNumTables = @extended
    MsgBox(0, "Table Info", "There are " & $iNumTables & " tables on the page")

    [/autoit]


    so jetzt meine frage wie kann ich denn dann eine bestimmte auslesen?