Что нового

[Окна, Диалоги] Отлов неактивной ошибки

Acid Burn

Чайник
Сообщения
11
Репутация
0
Добрый день! Перечитал подобные темы, но у меня так и не получилось реализовать это. Подскажите, пожалуйста:
Есть несколько программ, скажем 4-е, которые запущены, висят, и что-то делают. Понятно что одна может быть активна, а другие нет, или вообще окна этих программ не активны. И иногда у одного из этих окон(может быть у любого) выскакивает ошибка, она фокус не получает (то есть не активная). Я хотел бы и пытаюсь её отловить :stars: и отправить сообщение, о том что выскочила ошибка. Меня больше всего интересует как её можно отловить, так как когда она становится активной(я клацаю по ней мышкой), то все работает.
Заранее Спасибо за подсказки!
 

inververs

AutoIT Гуру
Сообщения
2 135
Репутация
462
Код:
winactive
проверяет активное ли окно
а
Код:
WinActivate
активирует окно. Подходит?
 
АТ
A

Acid Burn

Чайник
Сообщения
11
Репутация
0
Увы нет, пробовал конечно и такой вариант, не активирует его.
Один из вариантов который пробовал:
Код:
if winexists('') Then
 WinActivate('')
 ...

Но скрипт по прежнему не хочет опредеать неактивное окно с ошибкой.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 547
Репутация
929
Acid Burn
а ты название окна в скобках в кавычках указывал?
 
АТ
A

Acid Burn

Чайник
Сообщения
11
Репутация
0
Belfigor
Код:
('[CLASS:TSrExceptionDialog]')

или
Код:
WinActivate('Ошибка')
 
АТ
A

Acid Burn

Чайник
Сообщения
11
Репутация
0
Поправил сам, не пойму только почему раньше не работало, делал уже так :smile: Правду говорят "утро вечера мудренее". Переделал на свежую голову:
Код:
If WinExists($window) Then
	_run($window)
Endif

Func _run($window)
	If not WinActive($window) Then
	WinActivate($window)
	$hWnd = WinGetHandle($window)
	...
	Endif


Всем спасибо, кто пробовал помочь! :beer:
 
Верх