Sign in to follow this  
Followers 0
somdcomputerguy

Check for Page Change

2 posts in this topic

#1 ·  Posted (edited)

Well here's a script I wrote that I use daily, and maybe it'll be useful to someone else, either the script itself, or the code..

Every n seconds, the source code of the page at URL is checked. If the text at Text doesn't exist, the script assumes the page has changed.

There are three checkboxes,

Open - passes URL to ShellExecute when a notification is acknowledged.

Fade - The scripts GUI fades out when the 'Start' button is clicked.

Beep on Change - provides an audible notification as well as the visual notification that appears on a 'page change'.

Notification is acknowledged by pressing the 'End' key on your keyboard.

The icons I'm using in the script are here, http://somdcomputerguy.com/pccicons.zip.

This is what the GUI looks like..

Posted Image Posted Image<br><date.au3><inet.au3><constants.au3><editconstants.au3><guiconstantsex.au3><windowsconstants.au3><br></windowsconstants.au3></guiconstantsex.au3></editconstants.au3></constants.au3></inet.au3></date.au3>

Edited by somdcomputerguy

- Bruce /*somdcomputerguy */  If you change the way you look at things, the things you look at change.

Share this post


Link to post
Share on other sites



#include <Date.au3>
#include <INet.au3>
#include <Constants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt("TrayMenuMode", 3)
Opt("GUIOnEventMode", 1)
Opt("TrayOnEventMode", 1)
Opt('MustDeclareVars', 1)

Local $Form, $Label1, $Label2, $Label3, $Label4, $Input1, $Input2, $Input3, $Button1 _
        , $TrayToggleHide, $TrayRestart, $TrayExit, $TrayStart, $Button2 _
        , $CheckBox1, $CheckBox2, $CheckBox3, $sIniForumCheck = @AppDataCommonDir & "\forumcheck.ini"

#Region ### START Koda GUI section ###
$Form = GUICreate("Page Change Checker", 420, 120, 25, @DesktopHeight - 195, $WS_CAPTION, $WS_EX_TOOLWINDOW)
 GUISetIcon(@ScriptDir & "\Moderator.ico")
 GUISetOnEvent($GUI_EVENT_CLOSE, "Quit")
$Label1 = GUICtrlCreateLabel("Seconds", 5, 16, 60, 17)
$Label2 = GUICtrlCreateLabel("URL", 20, 40, 30, 17)
$Label3 = GUICtrlCreateLabel("Text", 20, 70, 30, 17)
$Label4 = GUICtrlCreateLabel("** Label **", 125, 15, 165, 20)
$Input1 = GUICtrlCreateInput(IniRead($sIniForumCheck, "Settings", "Seconds", "90"), 75, 15, 40, 20, $ES_CENTER)
 GUICtrlSetOnEvent($Input1, "WriteToIni")
$Input2 = GUICtrlCreateInput(IniRead($sIniForumCheck, "Settings", "URL", "http://forum.powweb.com/search.php?do=getnew"), 75, 45, 325, 20, $ES_CENTER)
 GUICtrlSetOnEvent($Input2, "WriteToIni")
$Input3 = GUICtrlCreateInput(IniRead($sIniForumCheck, "Settings", "Text", "Sorry, there are no new threads to view."), 75, 70, 325, 20, $ES_CENTER)
 GUICtrlSetOnEvent($Input3, "WriteToIni")
$Button1 = GUICtrlCreateButton("Start", 285, 10, 55, 23, $WS_GROUP)
 GUICtrlSetState($Button1, $GUI_FOCUS)
 GUICtrlSetOnEvent($Button1, "Start")
$CheckBox1 = GUICtrlCreateCheckbox(" Open", 35, 90, 60)
 GUICtrlSetState($CheckBox1, $GUI_CHECKED)
$CheckBox2 = GUICtrlCreateCheckbox(" Fade", 100, 90, 60)
 GUICtrlSetState($CheckBox2, $GUI_CHECKED)
$CheckBox3 = GUICtrlCreateCheckbox(" Beep on Change", 200, 90, 130)
 GUICtrlSetState($CheckBox3, $GUI_CHECKED)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

#Region ### START Tray section ###
$TrayToggleHide = TrayCreateItem("Show/Hide")
 TrayItemSetOnEvent($TrayToggleHide, "ToggleHide")
$TrayRestart = TrayCreateItem("Restart")
 TrayItemSetOnEvent($TrayRestart, "ReStart")
$TrayExit = TrayCreateItem("Exit")
 TrayItemSetOnEvent($TrayExit, "Quit")

TraySetState()
TraySetClick(9)
TraySetIcon(@ScriptDir & "\Moderator.ico")
TraySetToolTip(" Page Change Checker - Click here for the menu. ")
TraySetOnEvent($TRAY_EVENT_MOUSEOVER, "MouseOverTray")
#EndRegion ### START Tray section ###

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

While 1
    Sleep(10)
WEnd

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    Switch BitAND($wParam, 0xFFFF)
        Case $Button1
            If ControlGetText("Page Change Checker", "", "Button1") = 'Restart' Then Restart()
        Case $GUI_EVENT_CLOSE
            Quit()
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND

Func Start()
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlSetState($Input3, $GUI_DISABLE)
    GUICtrlSetState($CheckBox2, $GUI_DISABLE)
    ControlSetText("Page Change Checker", "", "Button1", "Restart")
    If BitAND(GUICtrlRead($CheckBox2), $GUI_CHECKED) = $GUI_CHECKED Then
        For $vTrans = 250 To 5 Step -5
            WinSetTrans("Page Change Checker", "", $vTrans)
            Sleep(10)
        Next
        WinSetState("Page Change Checker", "", @SW_HIDE)
        WinSetTrans("Page Change Checker", "", 255)
    EndIf
    While 1
        Local $sCountdown = _DateAdd( 's', GUICtrlRead($Input1), _NowCalc())
        TraySetToolTip(" Page Change Checker - Checking.. ")
        TraySetIcon(@ScriptDir & "\search2.ico")
        GUICtrlSetData($Label4, "Checking the page..")
        If StringInStr(_INetGetSource(GUICtrlRead($Input2)), GUICtrlRead($Input3)) = 0 Then
            TraySetToolTip(" Page Change Checker - Page Change!! ")
            GUICtrlSetData($Label4, "Page Change!!")
            TraySetIcon(@ScriptDir & "\check-mark-copy.ico")
            Actions()
        EndIf
        Sleep(Random(500, 1500, 1))
        TraySetIcon("Hourglass.ico")
        Do
            Local $sCurrent = _NowCalc()
            ;#cs
            For $i = 1 to 10
                TraySetIcon("hourglass" & $i & ".ico")
                Sleep(125)
            Next
            ;#ce
            Sleep(10)
            If $sCurrent <> _NowCalc() Then GUICtrlSetData($Label4, "Countdown.. " & _DateDiff( 's', _NowCalc(), $sCountdown))
            TraySetToolTip(" Page Change Checker - Waiting.. " & _DateDiff( 's', _NowCalc(), $sCountdown) & " Click here for the menu. ")
        Until _DateDiff( 's', _NowCalc(), $sCountdown) <= 0
    WEnd
EndFunc ;==>Start

Func Actions()
    If @HotKeyPressed = "{END}" Then
        HotKeySet("{END}")
        SplashOff()
        If BitAND(GUICtrlRead($CheckBox1), $GUI_CHECKED) = $GUI_CHECKED Then ShellExecute(GUICtrlRead($Input2))
        ;Quit()
        ReStart()
    EndIf
    HotKeySet("{END}", "Actions")
    SplashTextOn("", "Page Change!!", 425, 100, -1, -1, 32, "", 18)
    For $c = 3 To 1 Step -1
        ControlSetText("", "Page Change!!", "Static1", "Page Change!! {" & $c & "}")
        If BitAND(GUICtrlRead($CheckBox3), $GUI_CHECKED) = $GUI_CHECKED Then Beep(420, 420)
        Sleep(420)
    Next
    While 1
        SplashOff()
        Sleep(500)
        SplashTextOn("Press 'End' to close this message", "Page Change!!", 425, 100, -1, -1, 32, "", 18)
        Sleep(1500)
    WEnd
EndFunc ;==>Actions

Func WriteToIni()
    ;ConsoleWrite(@GUI_CtrlId & @LF)
    Switch @GUI_CtrlId
        Case 7
            IniWrite($sIniForumCheck, "Settings", "Seconds", GUICtrlRead($Input1))
        Case 8
            IniWrite($sIniForumCheck, "Settings", "URL", GUICtrlRead($Input2))
        Case 9
            IniWrite($sIniForumCheck, "Settings", "Text", GUICtrlRead($Input3))
    EndSwitch
EndFunc ;==>WriteToIni

Func MouseOverTray()
    If BitAND(WinGetState("Page Change Checker", ""), 2) Then
        TrayItemSetText($TrayToggleHide, "Hide Page Change Checker Window")
    Else
        TrayItemSetText($TrayToggleHide, "Show Page Change Checker Window")
    EndIf
EndFunc ;==>MouseOverTray

Func ToggleHide()
    If BitAND(WinGetState("Page Change Checker", ""), 2) Then
        WinSetState("Page Change Checker", "", @SW_HIDE)
    Else
        WinSetState("Page Change Checker", "", @SW_SHOW)
    EndIf
EndFunc ;==>ToggleHide

Func ReStart()
    ;If ControlGetText("Page Change Checker", "", "Button1") = 'Start' Then Start()
    ; Restart your program - http://www.autoitscript.com/forum/index.php?s=&showtopic=19370&view=findpost&p=199608
    ; Author UP_NORTH
    If @Compiled = 1 Then
        Run(FileGetShortName(@ScriptFullPath))
    Else
        Run(FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath))
    EndIf
    Exit
EndFunc ;==>ReStart

Func Quit()
    Exit
EndFunc ;==>Quit


- Bruce /*somdcomputerguy */  If you change the way you look at things, the things you look at change.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0