@Volker:
auf die Schnelle:
Code: Alles auswählen
EnableExplicit
InitNetwork()
Enumeration ; Windows
#frmMain
EndEnumeration
Enumeration ; Gadgets
#frmMain_LOG
EndEnumeration
Enumeration ; Timer
#timCheckWebPage
EndEnumeration
Global Page2Check.s = "http://www.inspirant.de/" ; Page, die überwacht werden soll
Global CheckTime = 5 * 60000 ; alle 5 Minuten prüfen
Procedure AddLog(LogMessage.s)
AddGadgetItem(#frmMain_LOG, -1, FormatDate("%hh:%ii:%ss", Date()) + ": " + LogMessage)
SetGadgetState(#frmMain_LOG, CountGadgetItems(#frmMain_LOG) - 1)
EndProcedure
Procedure CheckWebPage()
Protected MD5.s
Static InitialMD5.s
AddLog("Ermittle Änderungen an der Webpage...")
DeleteFile(GetTemporaryDirectory() + "deleteme.html")
; vorher Cache leeren
DeleteURLCacheEntry_(Page2Check)
; Download der Datei
UrlDownloadToFile_(0, Page2Check, GetTemporaryDirectory() + "deleteme.html", 0, 0)
MD5 = MD5FileFingerprint(GetTemporaryDirectory() + "deleteme.html")
If InitialMD5 = ""
; erster Aufruf -> initiale MD5 ermitteln, ansonsten nix tun
InitialMD5 = MD5
AddLog("Initiale MD5 ermittelt")
Else
; ermittelte MD5 unterscheidet sich von initialer MD5
If InitialMD5 <> MD5
AddLog("WebPage hat sich geändert!")
AddLog("1. MD5: " + InitialMD5)
AddLog("2. MD5: " + MD5)
AddLog("Schreibe Mail...")
; Mail schreiben
If CreateMail(0, "volkers@mailadresse", "Achtung!")
AddMailRecipient(0, "volkers@mailadresse", #PB_Mail_To)
SetMailBody(0, "WebPage hat sich verändert!")
SendMail(0, "smtp.yourfavoritesmtp.com")
FreeMail(0)
EndIf
AddLog("Fertig")
Else
AddLog("Keine Änderungen ermittelt.")
EndIf
EndIf
EndProcedure
Procedure OpenWindow_frmMain()
Protected WindowFlags
WindowFlags | #PB_Window_SystemMenu
WindowFlags | #PB_Window_ScreenCentered
OpenWindow(#frmMain, #PB_Ignore, #PB_Ignore, 300, 300, "PageChecker", WindowFlags)
ListViewGadget(#frmMain_LOG, 0, 0, 0, 0)
EndProcedure
Procedure Main()
Protected WWE
Protected Quit
OpenWindow_frmMain()
AddWindowTimer(#frmMain, #timCheckWebPage, CheckTime)
Repeat
WWE = WaitWindowEvent()
Select WWE
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_SizeWindow
ResizeGadget(#frmMain_LOG, #PB_Ignore, #PB_Ignore, WindowWidth(#frmMain), WindowHeight(#frmMain))
Case #PB_Event_Timer
Select EventTimer()
Case #timCheckWebPage
CheckWebPage()
EndSelect
EndSelect
Until Quit = #True
EndProcedure
Main()
ZeHa hat geschrieben:Dann programmier es in Python, das dürften keine 5 Zeilen sein
ich weiss ja nicht, wie Volkers Kenntnisse in Python sind, aber allein das einarbeiten
dürfte länger dauern als ein Deluxe-Programm in PB zu schreiben, oder?
<Sonium> someone speak python here?
<lucky> HHHHHSSSSSHSSS
<lucky> SSSSS
<Sonium> the programming language
Grüße ... Kiffi