Что нового

[Автоматизация] Автоматическое закрытие всплывающего окна

logos

Новичок
Сообщения
30
Репутация
1
Версия AutoIt: 3.3.0.0

Описание: Скрипт должен сидеть в трее и ждать появления окна. При появлении последнего, скрипт должен инициировать нажатие кнопки "Да" в этом окне и опять вернуться назад к ожиданию этого окна снова.
Теперь про окно: Родитель этого окна, программа-сервер которая позволяет телевизору воспроизоводить медиа контент, расположенный на жестком диске компьютера. Окно появляется всегда в одном и том же месте при инициализации сервера через телевизор. Появляется поверх всех окон и ждёт когда будет нажата одна из двух кнопок. При нажатии исчезает, но появляется вновь когда телевизор запрашивает новый контент.

Примечания: Информация по окну @Summary@:
>>>> Window <<<<
Title:
Class: HwndWrapper[AllShareAgent.exe;;6487f753-ff0d-4379-94d6-ab4418108ec9]
Position: 1579, 874
Size: 341, 166
Style: 0x16080000
ExStyle: 0x00080008
Handle: 0x00000000000B080E

>>>> Control <<<<
Class:
Instance:
ClassnameNN:
Advanced (Class):
ID:
Text:
Position:
Size:
ControlClick Coords:
Style:
ExStyle:
Handle: 0x0000000000010AE4

>>>> Mouse <<<<
Position: 1705, 959
Cursor ID: 0
Color: 0xEEEEEE

>>>> StatusBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<


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

сейчас заметил, что Информация по окну всегда разная вот последняя:
>>>> Window <<<<
Title:
Class: HwndWrapper[AllShareAgent.exe;;8141fef6-96d0-4408-8054-f26712de2a48]
Position: 1579, 874
Size: 341, 166
Style: 0x16080000
ExStyle: 0x00080008
Handle: 0x00000000001C13E6

>>>> Control <<<<
Class:
Instance:
ClassnameNN:
Advanced (Class):
ID:
Text:
Position:
Size:
ControlClick Coords:
Style:
ExStyle:
Handle: 0x0000000000010AE4

>>>> Mouse <<<<
Position: 1707, 974
Cursor ID: 0
Color: 0xC6C6C6

>>>> StatusBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
еще по кнопке такую же информацию надо
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
вот новое окно
>>>> Window <<<<
Title:
Class: HwndWrapper[AllShareAgent.exe;;2be84cd8-fc19-49d2-b9aa-f287609f4fcf]
Position: 1579, 874
Size: 341, 166
Style: 0x16080000
ExStyle: 0x00080008
Handle: 0x00000000003710E0

>>>> Control <<<<
Class:
Instance:
ClassnameNN:
Advanced (Class):
ID:
Text:
Position:
Size:
ControlClick Coords:
Style:
ExStyle:
Handle: 0x00000000001B1324

>>>> Mouse <<<<
Position: 1706, 974
Cursor ID: 0
Color: 0xF1F1F1

>>>> StatusBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<
над всем полем окна и кнопками параметр >>>> Window <<<< не меняется. Как будто кнопок вовсе нет.
p.s. думаю эта инфомация будет полезной Параметр >>>> Mouse <<<< во всех окнах находился как раз над кнопкой "Да".
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
а >>>> Control <<<< над кнопкой меняется?
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
нет, изменения происходят только в параметре >>>>window<<<< и координаты мыши. Остальное "по нулям"
 

joiner

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


а нельзя разве дать постоянные права ? зачем эти танцы с бубном?

так как координаты окна не меняются, то можно просто сделать клик мышью по координатам кнопки. то есть мы сами вручную задаем координаты точки экрана куда должен переместиться указатель мыши и где должен быть клик
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
В настройках программы, имеется галочка позволяющая не показывать это окно, но оно всё равно появляется с любыми настройками. :stars:
На счёт клика по координатам: Если такой скрипт не будет мешать работе мыши в других приложениях, то почему бы и нет. Но ведь окно появляется без предупреждения и если в этот момент времени мышь "занята" другими делами то может возникнуть конфуз (клик не там где надо).
OffTopic:
Моя ситуация прямо противоположная. Я изначально не хотел устанавливать этот софт, но подружить комп и телек, в тот момент, обычной сетью не получилось, вот поэтому и пришлось устанавливать сервер AllShare
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
logos [?]
но подружить комп и телек, в тот момент, обычной сетью не получилось
можно создать еще тему в разделе "Общение" и там обсудить этот момент.
указать операционную систему, включен ли контроль учетных записей, какие права у учетной записи и так далее.я поделюсь своим опытом настройки
авось все получится ;)
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
joiner
Большое спасибо за желание помочь с настройками сети и уверен вопрос был бы решён положительно, но воздержусь от этой идеи. Есть отрицательные моменты такого решения: главный из них это то, что расшарено очень много папок для другого компа и это весьма плохо отразится на навигации по ним с телевизора, ну и семья уже привыкла к интерфейсу сервера.
В свою очередь готов помочь Вам настроить свой сервер AllShare.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
logos,
Попробуйте примерно так.
Код:
HotKeySet('{Esc}', '_Exit')
AdlibRegister('_CloseWin', 500)

While 1
	Sleep(500)
WEnd

Func _CloseWin()
	Local $h_Win = WinGetHandle('[REGEXPCLASS:.+AllShareAgent.+]')
	If Not $h_Win Then Return
	ControlClick($h_Win, '', '[CLASS:Button; INSTANCE:1]') ;посмотрите, какая у Вас кнопка "Да"
EndFunc   ;==>_CloseWin

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
выскочило окно с ошибкой:

AdlibRegister('_CloseWin', 500)
^ERROR
Error: Unknown function name.
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
madmasles
Сейчас попробую.
p.s. Надеюсь работающие скрипты будут работать с новой версией программы
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
logos,
Или поменяйте на
Код:
AdlibEnable('_CloseWin', 500)
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
Обновил AutoIt3 до последней версии. Скрипт стал запускаться, но не работает. Ещё пробовал запускать его после появления окна эффект тот же.
А что значит это
Код:
;посмотрите, какая у Вас кнопка "Да"
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
logos [?]
инициировать нажатие кнопки "Да" в этом окне и опять вернуться назад к ожиданию этого окна снова
Код:
$Win = "[REGEXPCLASS:.+AllShareAgent.+]"
Do
  If WinExists($Win) Then
    $MousePos = MouseGetPos()
    $WinPos = WinGetPos($Win)
    MouseClick("left", $WinPos[0]+120, $WinPos[1]+100, 1, 0)
    MouseMove($MousePos[0], $MousePos[1], 0)
  EndIf
  Sleep(500) ; частота проверок в миллисекундах
Until 0
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
madmasles
К сожалению кнопки не видны программе. Вот видео 754 килобайта http://sderni.ru/163601
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
logos [?]
К сожалению кнопки не видны
А если нажать клавишу Enter, окно не закроется? Или, если
Код:
;заменить
	;...
	ControlClick($h_Win, '', '[CLASS:Button; INSTANCE:1]')
	;на
	WinClose($h_Win)
	;...
 
Автор
L

logos

Новичок
Сообщения
30
Репутация
1
InnI
Ваш код работает отлично! Огромное спасибо. :IL_AutoIt_1:
Также спасибо тем кто пытался помочь.
 
Верх