Что нового

Некорректная работа TraySetOnEvent с $TRAY_EVENT_PRIMARYDOWN

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Кто то может проверить у себя?

Код:
#NoTrayIcon
#include <Constants.au3>

Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1+2) ; Default tray menu items (Script Paused/Exit) will not be shown.

TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "ExitEvent")

TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "SpecialEvent")
TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "SpecialEvent")
TraySetState()
TraySetClick(16)

While 1
	Sleep(10) ; Idle loop
WEnd

Func SpecialEvent()
	Switch @TRAY_ID
		Case $TRAY_EVENT_PRIMARYDOWN
			MsgBox(64, "SpecialEvent-Info", "Primary mouse button pressed down.")
		Case $TRAY_EVENT_PRIMARYUP
			MsgBox(64, "SpecialEvent-Info", "Primary mouse button clicked.")
	EndSwitch
EndFunc

Func ExitEvent()
	Exit
EndFunc


Оба MsgBox'а срабатывают после отжатия левой (главной) кнопки мышки на иконке в трее.
Хотя на самом деле при зажатии должен появляться первый MsgBox, а при отжатий второй.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
win xp при нажатии лкм появляется одно окно. при нажатии в этом окне кнопки оно тухнет и появляется второе окно.
если зажать лкм на панели задач и перетащить указатель мыши на значок скрипта, потом отпустить появляется сообщение типа клавиша отжата
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
CreatoR [?]
Оба MsgBox'а срабатывают после отжатия левой (главной) кнопки мышки на иконке в трее.
Подтверждается на Win7x86.
joiner [?]
если зажать лкм на панели задач и перетащить указатель мыши на значок скрипта, потом отпустить появляется сообщение типа клавиша отжата
На Win7x86 вообще ничего не происходит.
От себя отмечу: на Win7x86 при зажатой левой клавише нажатие на правую приводит к появлению сообщения о нажатии клавиши.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Только я бы заменил MsgBox() на ConsoleWrite() для чистоты эксперемента, т.к. первый MsgBox() будет блокировать второй.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Yashied [?]
первый MsgBox() будет блокировать второй
Это не релевантно в данном случае, при удержании левой кнопки мышки на иконке в трее, должен появиться первый MsgBox.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в консоль пишет сразу два значения при отжатии лкм
 
Верх