Что нового

состояние иконки в трее

saraconor

Новичок
Сообщения
404
Репутация
3
какими функциями можно найти в трее иконку скайпа и узнать в каком она щас состоянии (зеленая, или оранжевая) ?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
saraconor

_SysTrayIconPos из _SysTray UDF http://www.autoitscript.com/forum/topic/103871-systray-udf/

http://autoit-script.ru/autoit3_docs/userfunctions/_SysTrayIconPos.htm

Возвращает координату верхнего левого края иконки - а дальше можно PixelGetColor или PixelSearch использовать
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
WSWR сказал(а):
saraconor

_SysTrayIconPos из _SysTray UDF http://www.autoitscript.com/forum/topic/103871-systray-udf/

http://autoit-script.ru/autoit3_docs/userfunctions/_SysTrayIconPos.htm

Возвращает координату верхнего левого края иконки - а дальше можно PixelGetColor или PixelSearch использовать
Это не то что нужно, выпепить изменение иконки по цвету я могу, нужно выяснить состояние иконки не в графическом режиме.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
saraconor [?]
выяснить состояние иконки
По статусу подойдёт?
Код:
#include <GuiToolbar.au3>
$tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow321")
For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
  $text = _GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i))
  $status = StringRegExp($text, "Skype \((.+)\)", 1)
  If Not @error Then  ExitLoop
Next
If IsArray($status) Then ConsoleWrite($status[0] & @CRLF)
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
#include 'SysTray_UDF.au3'
$arr=_SysTrayIconProcesses()
For $i = 0 To UBound($arr)-1
	If StringInStr($arr[$i],'skype') Then MsgBox(32,'',_SysTrayIconTooltip($i))
Next
Тоже кажет статус, только в _SysTrayIconTooltip надо Chr заменить на Chrw.
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
InnI сказал(а):
saraconor [?]
выяснить состояние иконки
По статусу подойдёт?
Код:
#include <GuiToolbar.au3>
$tray = ControlGetHandle("[class:Shell_TrayWnd]", "", "ToolbarWindow321")
For $i = 0 To _GUICtrlToolbar_ButtonCount($tray) - 1
  $text = _GUICtrlToolbar_GetButtonText($tray, _GUICtrlToolbar_IndexToCommand($tray, $i))
  $status = StringRegExp($text, "Skype \((.+)\)", 1)
  If Not @error Then  ExitLoop
Next
If IsArray($status) Then ConsoleWrite($status[0] & @CRLF)
Ваш скрипт просто показывает сообщение "в сети" а на изменение иконки в трее не реагирует.



Добавлено:
Сообщение автоматически объединено:

sngr сказал(а):
Код:
#include 'SysTray_UDF.au3'
$arr=_SysTrayIconProcesses()
For $i = 0 To UBound($arr)-1
	If StringInStr($arr[$i],'skype') Then MsgBox(32,'',_SysTrayIconTooltip($i))
Next
Тоже кажет статус, только в _SysTrayIconTooltip надо Chr заменить на Chrw.
агде в вашем скрипте Chr ?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
saraconor [?]
на изменение иконки в трее не реагирует
А разве смена статуса не изменяет иконку? "В сети" - зелёная, "Нет на месте" - оранжевая. Или я чего-то не понимаю?
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
InnI сказал(а):
saraconor [?]
на изменение иконки в трее не реагирует
А разве смена статуса не изменяет иконку? "В сети" - зелёная, "Нет на месте" - оранжевая. Или я чего-то не понимаю?
Нет. видмо "в сети" это общий статус программы. а индекс вида иконки в трее видимо в другом месте фиксируется. (при оранжевой иконке надпись "в сети" также остается)
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
saraconor
Вы когда на оранжевую иконку курсор мыши наводите - какой текст всплывает?
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Значит нужно немного скорректировать точно на оранжевый.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
saraconor
Вероятно, у вас версия скайпа какая-то древняя. У меня 6.18.66.106 и во всплывающей подсказке отображается текущий статус.
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
InnI сказал(а):
saraconor
Вероятно, у вас версия скайпа какая-то древняя. У меня 6.18.66.106 и во всплывающей подсказке отображается текущий статус.
хмм... спасибо, попробуй на новом скайпе.
<img src="http://storage7.static.itmages.ru/i/14/0917/h_1410951217_1375544_46b7e9c6ca.png" />
Нет. всетаки даже в версии 6.20.73.104 одно и то-же

Код:
#include <SysTray_UDF.au3>
$iIndex = _SysTrayIconIndex('Skype.exe')
MsgBox(0, 'Сообщение', $iIndex)

почему выдет всегда -1 (т.е. иконка не найдена) ?
 
Верх