Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пошел немного другими путями и почти все сделал через функцию WinGetState
Я решил сделать по другому - при любом исходе создавать это окно с надписями, но в зависимости от результата проверки:

* Если в массиве хоть один элемент "= True", то проверять через WinGetState активность этого окна. Если оно не видно, то делать видимым, если оно видимое - то пропускать цикл
* Если в массиве нет элементов с "= True", то так же проверять активность окна, но уже делать все наоборот.

НО !!! Загвоздка осталась в том, что у меня теперь не работает меню при нажатии правой кнопки на значке в трее.
Посмотрите плиз - что сделал не так:

читать дальше »
Код: Выделить весь код
#NoTrayIcon
#include <WindowsConstants.au3>
#include <ModernMenuRaw.au3>
#include <GUIConstantsEx.au3>

;~ Opt('MustDeclareVars', 1)

#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)

	$gui = GUICreate("OutLook - ADM-s", 400, 100, @DesktopWidth/2 - 200 , @DesktopHeight/2 - 100, $WS_POPUP, $WS_EX_TOPMOST)
	GUICtrlCreateLabel ("У Вас есть непрочитанные письма !!!",10,20)
	GUICtrlCreateLabel ("Сообщение будет убрано с экрана при условии,",10,40)
	GUICtrlCreateLabel ("что все письма будут прочтены",200,60)
	WinSetState("OutLook - ADM-s", "", @SW_HIDE)

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()
		$xx = _OutlookGetMail($oOutlook,$olFolderInbox  ,False,"","","","","","",False,"OutlookWarning2.exe",0)
		$count_i = UBound($xx) - 1
		$state = WinGetState("OutLook - ADM-s", "")

		For $i = 1 to $count_i Step +1
			If $xx[$i][12] = True Then
				$flag1 = True
				ExitLoop
			Else
				$flag1 = False
			EndIf
		Next
		If ($flag1 = True)and($state = 5) Then
			WinSetState("OutLook - ADM-s", "", @SW_SHOW)
		EndIf
		If ($flag1 = False)and(($state = 15)or($state = 7)) Then
			WinSetState("OutLook - ADM-s", "", @SW_HIDE)
		EndIf
EndFunc

Последний раз редактировалось ---Zak---, 24-09-2010 в 16:46.


Отправлено: 16:19, 24-09-2010 | #2