Что нового

Неработает скрипт поиска заголовка окна

joker2d

Новичок
Сообщения
182
Репутация
0
Написал простой скрипт

Код:
Opt("WinTitleMatchMode", 2) 
	
	$massiv_vseh_okon = WinList()
	For $i = 1 to $massiv_vseh_okon[0][0]	
	If $massiv_vseh_okon[$i][0] = 'Notepad' Then MsgBox(0, $i, $massiv_vseh_okon[$i][0])
		Next


Он должен искать все окна в заголовке которых есть слово Notepad и выводить меседж бокс
Но почему то окна ищуться только если написать полное имя окна, но я же указал 2 в Opt("WinTitleMatchMode", 2) , что как я понимаю значит 2 = сопоставление с произвольным фрагментом
Или я чего не понимаю ?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
да, понял неправильно.
Код:
Opt("WinTitleMatchMode", 2)

нужно для функций типа
Код:
WinSet...
WinGet...
WinExists

и прочих функций, связанных с окном. ты же заносишь все заголовки окон в массив, а потом каждое значение массива сравниваешь с нужной строкой. понятное дело, что если полного соответствия нет, то и условие не сработает. поэтому делай сравнение вхождение подстроки в строку, а не равенство двух строк
Код:
If StringInStr($massiv_vseh_okon[$i][0], 'Notepad') Then MsgBox(0, $i, $massiv_vseh_okon[$i][0])
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Можно и так:

Код:
#include <Array.au3>
Opt("WinTitleMatchMode", 2)

$avArray=WinList ("Notepad", "")
_ArrayDisplay ($avArray)
 
Верх