Что нового

Поймать всплывающую подсказку чужого приложения?

Suppir

Продвинутый
Сообщения
967
Репутация
62
Добрый день. Навожу мышкой на кнопку другого приложения - и всплывает подсказка (popup). Возможно ли прочитать текст с этой подсказки с помощью AutoIt? AutoIt Window Info текст не видит.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Suppir,
У меня работает:
Код:
#include <WinAPI.au3>

HotKeySet('=', '_Get_ToolTipInfo');=
HotKeySet('!2', '_Exit');Alt+1

While 1
	Sleep(100)
WEnd

Func _Get_ToolTipInfo()
	Local $s_Text, $h_Tmp, $a_List = WinList('[CLASS:tooltips_class32]')

	For $i = 1 To $a_List[0][0]
		If Not BitAND(WinGetState($a_List[$i][1]), 2) Then ContinueLoop
		$h_Tmp = _WinAPI_GetParent($a_List[$i][1])
		If $h_Tmp Then $s_Text &= 'Заголовок родительского окна: ' & WinGetTitle($h_Tmp) & @LF
		$s_Text &= 'Текст подсказки: ' & WinGetTitle($a_List[$i][1])
	Next
	If $s_Text Then
		ConsoleWrite($s_Text & @LF & '---' & @LF)
	Else
		ConsoleWrite('Нет подсказок :(' & @LF & '---' & @LF)
	EndIf
EndFunc   ;==>_Get_ToolTipInfo

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
madmasles
Тоже хотел найти решение проблемы но, зачем то полез в GUITollTip :smile:
Спс
И еще - ваш пример почему то не отлавливает Tip у кнопки "закрыть" наверное потому что эта подсказка привязана не к совсем окну?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
MnM [?]
И еще - ваш пример почему то не отлавливает Tip у кнопки "закрыть" наверное потому что эта подсказка привязана не к совсем окну?
Эта подсказка - окно класса #32774 (у меня на win7). Получить его текст/заголовок у меня не получилось.
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Спасибо, попробую.


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

Получается так, что на некоторых программах (например, проводник, хром) работает, а на других (тот же Total Commander)- не работает. Но все равно спасибо.

Скорее всего, работает на программах, которые напрямую используют WinAPI для вызова подсказки. А на программах, написанных на дельфи, не работает, т.к. подсказки там рисуются через собственную библиотеку.
 
Верх