Tag
Ich hab gestern Nacht ein wenig rumprobiert und jetzt vorher noch, aber ich schaffs irgendwie nicht so ne Option in meine Tray einzubauen, mit dem ich ihn dazu bewege eine Funktion aufzurufen, welche überprüft ob in einem Forum neue Beiträge vorhanden sind. Momentan sieht mein Script so aus:
Spoiler anzeigen
#include <String.au3>
#include <inet.au3>
#Include <Constants.au3>
HotKeySet("!f", "_Search")
TraySetIcon("info")
While 1
_Search()
Sleep(600000)
WEnd
Func _Search()
$Sourcecode = _InetGetSource("http://Server.Provider.ch/5is07a/forum/search.php?do=getnew")
$Result = _StringBetween($Sourcecode, '<td class="thead" width="75%">', '</td>')
If $Result = 0 then
TrayTip("Keine neuen Beiträge", "Es gibt keine neuen Beiträge.", 10, 1)
TraySetToolTip("Es gibt keine neuen Beiträge.")
TraySetState(4)
sleep(5000)
TraySetState(8)
Else
If $Result[0] = "Thema / Autor" then
$Bereich = _StringBetween($Sourcecode, '<span class="smallfont">Zeige Ergebnis', '>')
$Anzahl = _StringBetween($Bereich[0], ' von ', '</span')
If $Anzahl[0] = "1" then
$Nachricht1 = "Es wurde "
$Nachricht2 = " neuer Beitrag gefunden."
$Nachricht3 = @CRLF & "Jetzt den neuen Beitrag anzeigen?"
$Titel = "Neuer Beitrag"
$Anzahl[0] = "ein"
Else
$Nachricht1 = "Es wurden "
$Nachricht2 = " neue Beiträge gefunden."
$Nachricht3 = @CRLF & "Jetzt die neuen Beiträge anzeigen?"
$Titel = "Neue Beiträge"
EndIf
$Meldung = MsgBox(32+4, $Titel, $Nachricht1 & $Anzahl[0] & $Nachricht2 & $Nachricht3, 10)
If $Meldung = 6 then
If $Anzahl[0] = "ein" Then
$Thread = _StringBetween($Sourcecode, '<a href="showthread.php?goto=newpost&t=', '"')
$Link = "http://Server.Provider.ch/5is07a/forum/showthread.php?goto=newpost&t=" & $Thread[0]
Run('"C:\Programme\Mozilla Firefox\firefox.exe" ' & $Link)
TrayTip("", "", "")
Else
Run('"C:\Programme\Mozilla Firefox\firefox.exe" http://Server.Provider.ch/5is07a/forum/search.php?do=getnew')
TrayTip("", "", "")
EndIf
EndIf
If $Meldung = 7 or -1 Then
TrayTip($Titel, $Nachricht1 & $Anzahl[0] & $Nachricht2, 10, 1)
TraySetToolTip($Nachricht1 & $Anzahl[0] & $Nachricht2)
EndIf
EndIf
EndIf
EndFunc
Ich hab dann mal das Beispiel in mein Script integriert, aber hat trotzdem ned geklappt.
Spoiler anzeigen
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.
[/autoit] [autoit][/autoit] [autoit]$prefsitem = TrayCreateItem("Preferences")
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $prefsitem
Msgbox(64, "Preferences:", "OS:" & @OSVersion)
Case $msg = $aboutitem
Msgbox(64, "About:", "AutoIt3-Tray-sample.")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit
[/autoit]Klappt aber nicht so ganz. Zwar ist dann nachher die Option in der Tray da, jedoch passiert nichts, wenn ich darauf klicke. Nun, wie genau muss ich das machen, dass ich nachher in der Tray eine Option "Jetzt suchen" habe, welche die Funktion _Search aufruft.
Konkret sah das so aus:
[autoit][/autoit]Spoiler anzeigen
#include <String.au3>
#include <inet.au3>
#Include <Constants.au3>
HotKeySet("!f", "_Search")
TraySetIcon("info")
Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown.
$prefsitem = TrayCreateItem("Preferences")
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $prefsitem
Msgbox(64, "Preferences:", "OS:" & @OSVersion)
Case $msg = $aboutitem
Msgbox(64, "About:", "AutoIt3-Tray-sample.")
Case $msg = $exititem
ExitLoop
EndSelect
_Search()
Sleep(600000)
WEnd
Func _Search()
$Sourcecode = _InetGetSource("http://Server.Provider.ch/5is07a/forum/search.php?do=getnew")
$Result = _StringBetween($Sourcecode, '<td class="thead" width="75%">', '</td>')
If $Result = 0 then
TrayTip("Keine neuen Beiträge", "Es gibt keine neuen Beiträge.", 10, 1)
TraySetToolTip("Es gibt keine neuen Beiträge.")
TraySetState(4)
sleep(5000)
TraySetState(8)
Else
If $Result[0] = "Thema / Autor" then
$Bereich = _StringBetween($Sourcecode, '<span class="smallfont">Zeige Ergebnis', '>')
$Anzahl = _StringBetween($Bereich[0], ' von ', '</span')
If $Anzahl[0] = "1" then
$Nachricht1 = "Es wurde "
$Nachricht2 = " neuer Beitrag gefunden."
$Nachricht3 = @CRLF & "Jetzt den neuen Beitrag anzeigen?"
$Titel = "Neuer Beitrag"
$Anzahl[0] = "ein"
Else
$Nachricht1 = "Es wurden "
$Nachricht2 = " neue Beiträge gefunden."
$Nachricht3 = @CRLF & "Jetzt die neuen Beiträge anzeigen?"
$Titel = "Neue Beiträge"
EndIf
$Meldung = MsgBox(32+4, $Titel, $Nachricht1 & $Anzahl[0] & $Nachricht2 & $Nachricht3, 10)
If $Meldung = 6 then
If $Anzahl[0] = "ein" Then
$Thread = _StringBetween($Sourcecode, '<a href="showthread.php?goto=newpost&t=', '"')
$Link = "http://Server.Provider.ch/5is07a/forum/showthread.php?goto=newpost&t=" & $Thread[0]
Run('"C:\Programme\Mozilla Firefox\firefox.exe" ' & $Link)
TrayTip("", "", "")
Else
Run('"C:\Programme\Mozilla Firefox\firefox.exe" http://Server.Provider.ch/5is07a/forum/search.php?do=getnew')
TrayTip("", "", "")
EndIf
EndIf
If $Meldung = 7 or -1 Then
TrayTip($Titel, $Nachricht1 & $Anzahl[0] & $Nachricht2, 10, 1)
TraySetToolTip($Nachricht1 & $Anzahl[0] & $Nachricht2)
EndIf
EndIf
EndIf
EndFunc