1 (изменено: yalanne, 2016-09-01 11:54:04)

Тема: AHK: Определить на какой TrayTip Был Клик

Создание, клик и закрытие TrayTip Можно отследить так:


OnMessage(0x400 + 0x4, "AHK_NOTIFYICON") ; WM_USER + AHK_NOTIFYICON

F1::TrayTip,1,2,1,1
F2::TrayTip,3,4,1,2


AHK_NOTIFYICON(wParam, lParam,Msg,Hwnd)
{

	if (lParam = 0x402) ; TTM_ADDTOOL	Create - Сообщение создания окна TrayTip.
	{
		ToolTip Создано окно TrayTip.
	}
	
	if (lParam = 0x404) ; TTM_ADDTOOL	Close - Сообщение закрытия окна если истекло время или нажат крестик.
	{
		ToolTip Время показа окна закончено или нажат крестик.
	}
	
	if (lParam = 0x405) ; TTM_ADDTOOL	Close - Сообщение закрытия окна если был клик по сообщению
	{
		ToolTip Клик.
	}
}

Как можно определить по какому TrayTip'у был клик?
Получается надо будет вытащить информацию с помощью TTM_GETTOOLINFO, только что то не получается.

2

Re: AHK: Определить на какой TrayTip Был Клик

Раньше уже пытались что-то придумать.
AHK: Добавление ссылки или функции в TrayTip

3

Re: AHK: Определить на какой TrayTip Был Клик

Можно через:

ControlGetText, Text,,ahk_class tooltips_class32

4

Re: AHK: Определить на какой TrayTip Был Клик

Malcev, при щелчке по TrayTip'у он сразу исчезает. Как ControlGetText поможет узнать текст окна, которое уже не существует?

5 (изменено: Malcev, 2016-09-01 23:33:11)

Re: AHK: Определить на какой TrayTip Был Клик

Например так:



OnMessage(0x400 + 0x4, "AHK_NOTIFYICON") ; WM_USER + AHK_NOTIFYICON

F1::TrayTip,1,2,1,1
F2::TrayTip,3,4,1,2


AHK_NOTIFYICON(wParam, lParam,Msg,Hwnd)
{
   Global
   if (lParam = 0x402) ; TTM_ADDTOOL	Create - Сообщение создания окна TrayTip.
   {
      ControlGetText, Text,,ahk_class tooltips_class32
   }
   
   if (lParam = 0x404) ; TTM_ADDTOOL	Close - Сообщение закрытия окна если истекло время или нажат крестик.
   {
      ToolTip Время показа окна закончено или нажат крестик.
   }
   
   if (lParam = 0x405) ; TTM_ADDTOOL	Close - Сообщение закрытия окна если был клик по сообщению
   {
      if Text = 2
         msgbox f1
      else
         msgbox f2 
   }
}

6

Re: AHK: Определить на какой TrayTip Был Клик

Действительно, одновременно может существовать только один TrayTip.

7

Re: AHK: Определить на какой TrayTip Был Клик

В вин 10 окно имеет другой класс. И от туда не могу получить текст.

8

Re: AHK: Определить на какой TrayTip Был Клик

А эти трейтипы появляются в случайном порядке?
Если нет, то можно присуждать какой-нибудь глобальной переменной их название.
Если этот вариант не подходит, то можно с помощью acc.
Либо ждать помощи от тех, кто в теме, например, от teadrinker.
Он выкладывал различные скрипты связанные с треем.

9

Re: AHK: Определить на какой TrayTip Был Клик

Нет, мои примеры с треем в десятке, вроде, не работают, там поменялось что-то, а у меня семёрка.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder