Что нового

Как активизировать окно не по полному его названию, а лишь по отдельному слову?

agikon

Знающий
Сообщения
789
Репутация
16
Например каждая програма может добавлять всои слова в название окна, ну нарример в почтовику Outlook Express это "Outlook [email protected] в браузере opera это слово "Opera " но как вот это всё миновать? Как привязаться только к одному слову и чтобы скрипт искал это одно слово в заголовке окон и активировал только его?
Возможно ли вообще такое провернуть в аутоите?

Если возможно то приведите пример я только начал изучать скрипт и плохо ориентируюсь.
 

VladUs

Скриптер
Сообщения
621
Репутация
180
Используйте опцию Opt("WinTitleMatchMode",2) в начале скрипта
Вообще в справке об этом подробно написано.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
Или по рег. выражению:

Код:
WinActivate("[REGEXPTITLE:.* - Opera]")
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
ну приведите пример с опцией Opt("WinTitleMatchMode",2)
я не пойму как задать значение для этой Opt("WinTitleMatchMode",2)
на примере приведите, например со словом "Opera"


CreatoR так получается символ * тут тоже работает чтоли?
вот так можно прописать
Код:
WinActivate("[REGEXPTITLE:*Opera*]")
?
 

kaster

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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
agikon [?]
так получается символ * тут тоже работает чтоли?
Там регулярное выражение, и нет, один символ не работает, должно быть вместо с точкой:

Код:
WinActivate("[REGEXPTITLE:.*Opera.*]")
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
сделал вот по этому примеру
Код:
WinActivate("[REGEXPTITLE:.*Opera.*]")
и всё получилось.
а по Opt("WinTitleMatchMode", 2) много неясностей, кто его знает куда там свои слова вписывать, еи примера с синтаксисом нет , ничего..

это хорошо что тут есть .*

Спасибо люди что помогли, а то это я бы точно нигде не узнал если бы не живая помощь.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
agikon [?]
а по Opt("WinTitleMatchMode", 2) много неясностей,
мда.... все неясности от твоей лени читать. вставляется это в начало кода. а потом, делаешь обычный
Код:
WinActivate('Opera')

и он тебе активирует окно и "Opera", и "Ne Opera", и даже 'My Opera is the best'.
тема решена?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
Кастер мне всё-равно не ясно.
А как же в других случаях тогда быть, когда например после неточного описания окна надо точное название окна?
Ведь Opt("WinTitleMatchMode", 2) даёт понять всему скрипту что название окон уже не будет уже полное. Вобщем это уже не важн, можете не отвечать.
Спасибо за помощь.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
agikon [?]
А как же в других случаях
Код:
Run(@WindowsDir & '\notepad.exe')
Opt('WinTitleMatchMode', 2)
$hWin = WinWait('Блокнот', '', 3)
MsgBox(64, 'Info-1', $hWin)
Run(@WindowsDir & '\notepad.exe')
Opt('WinTitleMatchMode', 1)
$hWin = WinWait('Безымянный', '', 3)
MsgBox(64, 'Info-2', $hWin)
Run(@WindowsDir & '\notepad.exe')
Opt('WinTitleMatchMode', 3)
$hWin = WinWait('Безымянный - Блокнот', '', 3)
MsgBox(64, 'Info-3', $hWin)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
agikon [?]
Вобщем это уже не важн,
это тебе кажется, что не важно ;)
а как только подобный вопрос встанет, ты опять будешь создавать новую тему.
WinTitleMatchMode = 2 отловит не только неточное название, но и точное тоже. так же как и маска * может отлавливать и один символ, и два и ни одного. я тебе настоятельно рекомендую помимо чтения справки, экспериментировать с примерами.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Kaster [?]
WinTitleMatchMode = 2 отловит не только неточное название, но и точное тоже.
Позвольте с Вами не согласиться. В этом случае отловит окно и с Безымянный - Блокнот, и с Супер Безымянный - Блокнот номер два. А какое из них нужное? И какое первое отловит?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
madmasles [?]
В этом случае отловит окно и с Безымянный - Блокнот, и с Супер Безымянный - Блокнот номер два.
как это противоречит тому, что я написал? :blink:
и потом, agikon ничего не упоминал, что окон несколько и нужно выбрать правильный.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
Kaster
madmasles имел в виду что «WinTitleMatchMode = 2» отловит только неточное название.
Но естественно ты имел в виду другое (если я правильно понял) - что будет совпадать любое окно, даже если его названий в точности совпадает с записанным в функций проверки окна.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
таки да важно.
от не сложилось у меня с этим ОПТАМИ => Opt(
опять столкнулся с вопросом как задержить нажание определенной клавишиклавиши, в даном случае ПРОБЕЛ. И
Делаю вот так
Код:
Opt("SendKeyDownDelay", 1000);  1секунду 
Send ('{SPACE}')
и полуается что и все остальные клввиши тоже удерживаются 1 секунду.

Вот кк привязать задержку именно в нужной клавиши?

Может этот ОПТ можно миновать как и в случаи с масками?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
agikon

{MultplQuestionWarn}
 
Верх