#NoTrayIcon
#include <INet.au3>
#include <Encoding.au3>
#include <Constants.au3>
Opt('TrayMenuMode', 1)
Opt('MustDeclareVars', 1)
Global $sMessageOld, $sMessageNew, $iTime, $hNow, $hLast, $hExit, $msg, $iPause = 30 ;пауза в секундах
$hNow = TrayCreateItem('Проверить сейчас')
$hLast = TrayCreateItem('Последнее сообщение')
TrayCreateItem('')
$hExit = TrayCreateItem('Выход')
TraySetState()
TraySetClick(8)
TraySetToolTip('Проверка появления новых сообщений.')
_TrayItemsDisable()
$sMessageOld = _NewMessage()
If $sMessageOld <> 'Error' Then
MsgBox(0, 'Последнее сообщение.', $sMessageOld, 5)
Else
MsgBox(0, 'Ошибка', 'Ошибка получения данных с сайта.', 5)
EndIf
_TrayItemsEnable()
$iTime = TimerInit()
While 1
$msg = TrayGetMsg()
Switch $msg
Case $hNow
_TrayItemsDisable()
$sMessageNew = _NewMessage()
If $sMessageNew <> 'Error' Then
If $sMessageNew <> $sMessageOld Then
$sMessageOld = $sMessageNew
MsgBox(0, 'Есть новое сообщение.', $sMessageOld)
Else
MsgBox(0, 'Проверка сообщений.', 'Нет новых сообщений')
EndIf
Else
MsgBox(0, 'Ошибка', 'Ошибка получения данных с сайта.')
EndIf
_TrayItemsEnable()
Case $hLast
TrayTip('', '', 0)
TraySetState(8)
TraySetToolTip('Проверка появления новых сообщений.')
_TrayItemsDisable()
MsgBox(0, 'Последнее сообщение.', $sMessageOld)
_TrayItemsEnable()
Case $hExit
_MyExit()
EndSwitch
If TimerDiff($iTime) >= $iPause * 1000 Then
_TrayItemsDisable()
$sMessageNew = _NewMessage()
If $sMessageNew <> 'Error' Then
If $sMessageNew <> $sMessageOld Then
$sMessageOld = $sMessageNew
If MsgBox(0, 'Есть новое сообщение.', $sMessageOld, 5) = -1 Then
TraySetState(4)
TraySetToolTip('Есть новое сообщение.')
TrayTip('Проверка сообщений', 'Есть новое сообщение.', 100, 1)
EndIf
EndIf
EndIf
_TrayItemsEnable()
$iTime = TimerInit()
EndIf
WEnd
Func _NewMessage()
If Not Ping('biglion.ru') Then Return 'Error'
Local $sUrl = 'http://biglion.ru/rostovnadonu/forum/offer/index.php?deal_offer_id_4=446'
Local $sSource, $sText
TraySetIcon('Shell32.dll', 276)
$sSource = _INetGetSource($sUrl)
If Not $sSource Then Return 'Error'
$sText = StringRegExpReplace($sSource, '(?s).*?<table class="forum-table">(.*?)</tr>?.*', '\1')
$sText = _Encoding_UTF8ToUnicode_API(StringStripWS(StringRegExpReplace($sText, '<.*?>', ''), 7))
$sText = StringReplace($sText, '"', '"')
TraySetIcon()
If $sText Then
Return $sText
Else
Return 'Error'
EndIf
EndFunc ;==>_NewMessage
Func _TrayItemsDisable()
TrayItemSetState($hNow, $TRAY_UNCHECKED + $TRAY_DISABLE)
TrayItemSetState($hLast, $TRAY_UNCHECKED + $TRAY_DISABLE)
TrayItemSetState($hExit, $TRAY_DISABLE)
EndFunc ;==>_TrayItemsDisable
Func _TrayItemsEnable()
TrayItemSetState($hNow, $TRAY_ENABLE)
TrayItemSetState($hLast, $TRAY_ENABLE)
TrayItemSetState($hExit, $TRAY_ENABLE)
EndFunc ;==>_TrayItemsEnable
Func _MyExit()
Exit
EndFunc ;==>_MyExit