creature.ws
1. С Вашим кодом всё по-прежнему: со всеми окнами работает, кроме окна TabSRMM у Miranda-NG.
2. Ваш вариант мне больше нравится (я пока плоховато разбираюсь в правильности составления условий), но и RegExMatch здесь тоже должен бы срабатывать, но почему-то этого не происходит.
serzh82saratov
Перед контролом, отвечающим за ползунок управления громкостью какого-то приложения, находится контрол "StaticN" (вместо N - число), с текстом "Имя_приложения: громкость". Петля (loop) в моём коде как раз и ищет совпадение title активного окна с текстом у всех "StaticN" контроллов, находя нужный. Как только она его нашла - мы знаем его порядковый номер, но т.к. контрол, отвечающий за ползунок - следующий в списке контроллов, то мы должны добавить единицу к найденному порядковому номеру и сохранить это всё в какую-то переменную:
thisControl := A_Index + 1
На следующей итерации петли - мы проверяем, соответствует ли текущая итерация петли (A_Index) числу в той переменной, и если соответствует - то это и есть контрол, отвечающий за ползунок и мы его и посылаем ControlSend, а потом просто удаляем ту переменную (после этого стоит сделать и разрыв петли (Break), который я не добавил в код, т.к. занимался debugging-ом).
В принципе, можно даже ничего не записывать в переменную "thisControl", а просто создавать её и проверять само наличие. Это сэкономит целых несколько байт памяти.
Слова "Miranda NG'шным TabSRMM-ом" мне вообще ни о чём не говорят sad Вы бы хоть значения title привели, рабочее и нет.
А что конкретно не понятно? Miranda NG - это мультипротокольный мессенеджер для разных сетей. TabSRMM - плагин от этой программы, отвечающий за окна чат-контейнеров. Без этого (или аналогичного) плагина - некому было бы создавать окна чата. Title у окна выглядит, например, вот так: "Drugoy (Online)". Ради дебага пробовал заранее вбивать этот текст в переменную и искать совпадение текста "StaticN" с текстом из этой переменной - тогда всё срабатывает.
А "$" - это не часть title'а, это часть RegExp синтаксиса, означает, что данное выражение должно находиться в конце строки. Его можно удалить, без него всё так же работает.