---Zak---
24-09-2010, 09:37
День добрый.
Нужен Ваш проф. совет: у пользователей на ПК стоит MSOutLook и существует задача, подключаться к OutLook'у - проверять все письма на прочитал/не прочитал. Если в списке писем есть хоть не одно прочтенное письмо, то в этом случае выводить окно (без возможности его закрытия), в котором будет обычная надпись - что так и так - прочитайте все письма.
Скрипт подключения к OutLook находится здесь - http://www.autoitscript.com/forum/index.php?showtopic=89321
По примеру скрипта http://forum.oszone.net/thread-185706.html написал скрипт, который должен все это проделывать, но никак не понимаю. Естественно это все должно быть в цикле и обрабатываться через N-ое кол-во времени. Дошел до момента, когда окно вылезает, но после этого хочу в OutLook'е прочитать все письма и окно не пропадает...
Так же в скрипте предусмотрена менюшка, когда прога висит в трее. Вот если вызвать из нее блокнот, тогда функция сработает еще раз - выведет еще одно окно. Иногда доходил до момент, когда не останавливал функцию через
AdlibUnRegister("ReadOutLook")
GUISetState(@SW_SHOW)
AdlibRegister("ReadOutLook", 1000)
она мне постоянно выкидывала новые окна... и таким способом заполоняла "панель пуска".
#NoTrayIcon
#include <WindowsConstants.au3>
#include <ModernMenuRaw.au3>
#include <GUIConstantsEx.au3>
#Include <Array.au3>
#Include "Outlook.au3"
$j = 0
$bPause = True
$hTrayIcon = _TrayIconCreate("Proba")
_TrayIconSetClick(-1, 16)
_TrayIconSetState()
$nTrayMenu = _TrayCreateContextMenu()
$Notepad_TrayItem = _TrayCreateItem("Блокнот")
_TrayItemSetIcon(-1, "notepad.exe", 0)
_TrayCreateItem("")
_TrayItemSetIcon(-1, "", 0)
$Exit_TrayItem = _TrayCreateItem("Выход")
_TrayItemSetIcon(-1, "shell32.dll", 28)
_SetTrayIconBkColor(0xC46200)
_SetTraySelectBkColor(0x087272)
_SetTraySelectTextColor(0xFFFFFF)
AdlibRegister("ReadOutLook", 1000)
While 1
Switch GUIGetMsg()
Case $Notepad_TrayItem
AdlibUnRegister()
Run("Notepad.exe")
_TrayItemSetText($Notepad_TrayItem, 'Блокнот')
AdlibRegister("ReadOutLook", 1000)
Case $Exit_TrayItem
_TrayIconDelete($hTrayIcon)
ExitLoop
EndSwitch
WEnd
Func ReadOutLook()
Local $gui, $msg, $flag
$oOutlook = _OutlookOpen()
$gui = GUICreate("OutLook", 400, 100, @DesktopWidth/2 - 200 , @DesktopHeight/2 - 100, $WS_POPUP, $WS_EX_TOPMOST)
GUICtrlCreateLabel ("У Вас есть непрочитанные письма !!!",10,20)
GUICtrlCreateLabel ("Сообщение будет убрано с экрана при условии,",10,40)
GUICtrlCreateLabel ("что все письма будут прочтены",200,60)
$xx = _OutlookGetMail($oOutlook,$olFolderInbox ,False,"","","","","","",False,"OutlookWarning2.exe",0)
$count_i = UBound($xx) - 1
For $i = 1 to $count_i Step +1
If $xx[$i][12] = True Then
$flag = True
ExitLoop
Else
$flag = False
EndIf
Next
If $flag = True Then
AdlibUnRegister("ReadOutLook")
GUISetState(@SW_SHOW)
;~ AdlibRegister("ReadOutLook", 1000)
Else
AdlibUnRegister("ReadOutLook")
GUISetState(@SW_HIDE)
EndIf
EndFunc
Помогите плиз...
Нужен Ваш проф. совет: у пользователей на ПК стоит MSOutLook и существует задача, подключаться к OutLook'у - проверять все письма на прочитал/не прочитал. Если в списке писем есть хоть не одно прочтенное письмо, то в этом случае выводить окно (без возможности его закрытия), в котором будет обычная надпись - что так и так - прочитайте все письма.
Скрипт подключения к OutLook находится здесь - http://www.autoitscript.com/forum/index.php?showtopic=89321
По примеру скрипта http://forum.oszone.net/thread-185706.html написал скрипт, который должен все это проделывать, но никак не понимаю. Естественно это все должно быть в цикле и обрабатываться через N-ое кол-во времени. Дошел до момента, когда окно вылезает, но после этого хочу в OutLook'е прочитать все письма и окно не пропадает...
Так же в скрипте предусмотрена менюшка, когда прога висит в трее. Вот если вызвать из нее блокнот, тогда функция сработает еще раз - выведет еще одно окно. Иногда доходил до момент, когда не останавливал функцию через
AdlibUnRegister("ReadOutLook")
GUISetState(@SW_SHOW)
AdlibRegister("ReadOutLook", 1000)
она мне постоянно выкидывала новые окна... и таким способом заполоняла "панель пуска".
#NoTrayIcon
#include <WindowsConstants.au3>
#include <ModernMenuRaw.au3>
#include <GUIConstantsEx.au3>
#Include <Array.au3>
#Include "Outlook.au3"
$j = 0
$bPause = True
$hTrayIcon = _TrayIconCreate("Proba")
_TrayIconSetClick(-1, 16)
_TrayIconSetState()
$nTrayMenu = _TrayCreateContextMenu()
$Notepad_TrayItem = _TrayCreateItem("Блокнот")
_TrayItemSetIcon(-1, "notepad.exe", 0)
_TrayCreateItem("")
_TrayItemSetIcon(-1, "", 0)
$Exit_TrayItem = _TrayCreateItem("Выход")
_TrayItemSetIcon(-1, "shell32.dll", 28)
_SetTrayIconBkColor(0xC46200)
_SetTraySelectBkColor(0x087272)
_SetTraySelectTextColor(0xFFFFFF)
AdlibRegister("ReadOutLook", 1000)
While 1
Switch GUIGetMsg()
Case $Notepad_TrayItem
AdlibUnRegister()
Run("Notepad.exe")
_TrayItemSetText($Notepad_TrayItem, 'Блокнот')
AdlibRegister("ReadOutLook", 1000)
Case $Exit_TrayItem
_TrayIconDelete($hTrayIcon)
ExitLoop
EndSwitch
WEnd
Func ReadOutLook()
Local $gui, $msg, $flag
$oOutlook = _OutlookOpen()
$gui = GUICreate("OutLook", 400, 100, @DesktopWidth/2 - 200 , @DesktopHeight/2 - 100, $WS_POPUP, $WS_EX_TOPMOST)
GUICtrlCreateLabel ("У Вас есть непрочитанные письма !!!",10,20)
GUICtrlCreateLabel ("Сообщение будет убрано с экрана при условии,",10,40)
GUICtrlCreateLabel ("что все письма будут прочтены",200,60)
$xx = _OutlookGetMail($oOutlook,$olFolderInbox ,False,"","","","","","",False,"OutlookWarning2.exe",0)
$count_i = UBound($xx) - 1
For $i = 1 to $count_i Step +1
If $xx[$i][12] = True Then
$flag = True
ExitLoop
Else
$flag = False
EndIf
Next
If $flag = True Then
AdlibUnRegister("ReadOutLook")
GUISetState(@SW_SHOW)
;~ AdlibRegister("ReadOutLook", 1000)
Else
AdlibUnRegister("ReadOutLook")
GUISetState(@SW_HIDE)
EndIf
EndFunc
Помогите плиз...