От в змові з адміністрацією накидав прожку на автоіт3.
Повідомляє про нові повідомлення з реплейсу. Тестив на Windows 7 х64, як Вам треба щось інакше можете самі дописати/переписати.
▼Код (версія 1.02b 05.01.15)
;ReplaceNewPosts2. Author Chemist. License GNU GPL v3
;Version 1.02 beta
;=== history ===
;Version 1.02 beta
;05.01.15 16:40
;Refactoring code
;If error of connection now showing splash window insted messageBox
;Version 1.01 beta
;24.12.14 03:54
;fix function show splash window. When window splashing if mouse was been on window - window not close
;Version 1.00 beta
;15.12.14 06:33
;Version 0.01 alpha
;15.12.14 02:52
;Start project
;compiler options
#pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico)
#pragma compile(UPX, True)
#pragma compile(ProductName, ReplaceNewPostByChemist)
#pragma compile(ProductVersion, 1.02b)
#pragma compile(FileVersion, 1.02.0, 1.02) ; The last parameter is optional
#pragma compile(FileDescription, ReplaceNewPost - sipmle replace.org.ua notifier)
#pragma compile(LegalCopyright, © Chemist)
#pragma compile(LegalTrademarks, 'No trademark')
#pragma compile(CompanyName, 'Chemist')
;Check page address
Global Const $SiteAddress = "http://replace.org.ua/extern.php?sort=last_post&show=1"
; delays
Global Const $delay1 = 20 * 1000; ;20 sec,
Global Const $delay2 = 30 * 1000; ;30 sec
Global Const $delay3 = 5 * 60 * 1000; ;5 minutes, 300 sec
Global Const $delay4 = 10 * 60 * 1000; ;10min; 600 sec
; info window show time
Global Const $splashTime = 5 * 1000; ;5 minutes
;Global Const $debugX = true;
Global Const $debugX = false;
; reserved option
Global Const $ShowDetailInfo = false;
Func GetPage()
Local $PageHTML = "";
if $debugX Then
;
Else
; Get html page
; Create Obj
; GET http://brugbart.com/http-get-request-autoit
; POST http://brugbart.com/http-post-request-autoit
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", $SiteAddress, False)
$oHTTP.Send()
$PageHTML = $oHTTP.ResponseText
Local $oStatusCode = $oHTTP.Status
; end
; all http status:
; http://msdn.microsoft.com/ru-ru/library/windows/desktop/aa383887%28v=vs.85%29.aspx
if $oStatusCode <> 200 Then
Return "Error";
EndIF
EndIF
Return $PageHTML
EndFunc ;GetPage()
Func ShowMessageX($message)
; MsgBox(0, "Replace new post", $str2)
SplashTextOn("Replace new post", "<<<<<REPLACE.ORG.UA>>>>>" & @CRLF & @CRLF & $message, 300, 100, @DesktopWidth-300-10, @DesktopHeight-100-10-40, (1 + 4), "", 10)
Local $aPos
sleep(1000);
local $RectLeft = @DesktopWidth-300-10
local $RectRigth = @DesktopWidth-10
Local $RectTop = @DesktopHeight-100-10-40
Local $RectDown = @DesktopHeight-10-40
Local $onForm = false
While (1)
$aPos = MouseGetPos()
if (($aPos[0] > $RectLeft) and ($aPos[0] <= $RectRigth) _
and ($aPos[1] > $RectTop) and ($aPos[1] <= $RectDown)) Then
if ($onForm) Then
ExitLoop;
Endif
Else
$onForm = true;
EndIf
sleep(50);
WEnd
SplashOff()
Endfunc ;ShowMessage()
Func Check()
Local $tmpStr1 = GetPage()
if $tmpStr1 = "Error" Then
ShowMessageX("Connection error!")
Return 1
EndIF
while (1)
$delayX = $delay2;
sleep($delayX)
$tmpStr2 = GetPage();
if $tmpStr2 = "Error" Then
ShowMessageX("Connection error!")
ExitLoop;
EndIF
if ($tmpStr2 <> '') and ($tmpStr1 <> $tmpStr2) Then
If $ShowDetailInfo Then
;do something
Else
ShowMessageX("New Message")
EndIf
ExitLoop;
EndIf
WEnd;
Return 1
EndFunc ;Check()
;Entry point
while (1)
Check();
WEnd
Технічні дані:
Інтервал опиту наразі 30 секунд.
Прибрати вікно можна, якщо навести на нього мишку.
Працює наступним чином:
запит оцієї сторінки, як 30 секунд назад вона була така сама, нічого не робимо, а от як інакша - виводимо повідомлення зправа внизу.
Бінарник внизу.