Что нового

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

agikon

Знающий
Сообщения
789
Репутация
17
Пишу некий скриптик который бы по горячим клавишам управлял браузером (сворачивл и разворачивал браузер).
Но столкнулся с проблемой возможно даже что виноват именно браузер.
Вобщем сейчас опишу проблему а вы пожалуйста подскажите кто виноват что возникает такая проблема и как её решать.

Браузер Mozilla Firefox.
Как только запускаю и открою несколько вкладок то всё работает отлично, то есть имя окна браузера считывается отлично. Ну вы знаете что браузер принимает имя той вкладки которая активна в данный момент.
Так вот через некоторое время когда кладок наберётся ну когда как, но обычно 10-15, имя браущера считывается некорректно, и такие фунеции как WinSetState не правильно считывают имя браузера и потому как то не верно отображают его статус, ну если быть точным то возврвщают значение суммы статуса окна 5 (то есть 1+4).

И вот когда начинаются эти глюки я беру и запускаю проверку на то как считывается имя браузера в данный момент (то есть в момент когда появляются эти глюки). И на удивление обнаруживаю что имя браузера считывается не правильно, а вернее без приставки вконце "- Mozilla Firefox".
То есть если в рабочем состоянии имя браузера выглядит так: "AutoIt для новичков - Mozilla Firefox",
то в состоянии когда появляются эти лаги, имя браузера уже выглядит так:"AutoIt для новичков"
То есть как видим без окончания "- Mozilla Firefox".

Это я определил через функцию WinGetTitle, вот таким кодом
Код:
sleep(500)
$title = WinGetTitle("Autoit", "")
ClipPut ($title) ; в буфер
MsgBox(0, "Full title read was:", $title)

$state = WinGetState($title, "")
MsgBox(64,'',$state , '')


То ест мой вопрос почему через некоторое время когда накапливается некоторое количество вкладок имя браузера считывается некоректно, то есть без задней приставки "- Mozilla Firefox"?
И почему при появлении этого лага WinSetState считывает не правильный статус браузера?
Статус браузера считываю по маске вот так
Код:
$state = WinGetState("[REGEXPTITLE:.*Mozilla Firefox.*]", "")

И что самое интересное прграмма Autoit Windows Info считывает правильно имя браузкра даже когда появляется этот лаг. То есть я не пойму кто виновник этого лага?
 
Верх