1

Тема: AHK: Приложение меняет свой класс!

А что делать, если приложение после перезапуска меняет свой класс, а заголовок окна не является чем-то уникальным? Как достоверно определить нужное окно?

2

Re: AHK: Приложение меняет свой класс!

А что у него не изменяется? Κακ Βы понимаете, что окно то самое?

3

Re: AHK: Приложение меняет свой класс!

Можно попробовать по  ID или PID.

4

Re: AHK: Приложение меняет свой класс!

zzzUUUzzz пишет:

А что делать, если приложение после перезапуска меняет свой класс, а заголовок окна не является чем-то уникальным? Как достоверно определить нужное окно?

У этого приложения одно окно, или несколько?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5 (изменено: zzzUUUzzz, 2011-06-05 20:06:28)

Re: AHK: Приложение меняет свой класс!

Извините за задержку.

ypppu пишет:

А что у него не изменяется? Κακ Βы понимаете, что окно то самое?

Мне и хочется узнать средства. Как узнаю? Запускаю программу, смотрю класс, закрываю программу, открываю программу, смотрю класс, а они... догадываетесь?

DaVinchi пишет:

Можно попробовать по ID или PID.

PID тоже меняется, ID посмотрел, тоже разное...

teadrinker пишет:

У этого приложения одно окно, или несколько?

Одно. К примеру, возьмём программу ACDSee.

6

Re: AHK: Приложение меняет свой класс!

zzzUUUzzz пишет:

К примеру, возьмём программу ACDSee.

Тогда так:

WinGet, List, List
Loop % List
{
   WinGet, ProcessName, ProcessName, % "ahk_id" List%A_Index%
   if InStr(ProcessName, "ACDSee")
   {
      WinGetTitle, Title, % "ahk_id" List%A_Index%
      MsgBox, % Title
      Return
   }
}
Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Приложение меняет свой класс!

Спасибо!
Действительно, имя процесса для меня является достаточно уникальным значением.
Наконец, заработало, НО после некоторых манипуляций, а именно:
- в своём скрипте искал причину неработоспособности, оказалась строка DetectHiddenWindows, On
- первый Return заменил на Break, второй Return удалил
...
- PROFIT!!1 , как говорится

8

Re: AHK: Приложение меняет свой класс!

zzzUUUzzz пишет:

в своём скрипте искал причину неработоспособности, оказалась строка DetectHiddenWindows, On

Да, у приложения, кроме одного видимого, могут иметься несколько скрытых окон.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Приложение меняет свой класс!

Возникла проблема... а как быть с utorrent.exe?
Не работает, видимо, из-за символа "μ".
Поставил юникод-версию программы, скрипт сохранил в utf8, не работает всё равно...
И если просто класс указать, то не работает условие...

10

Re: AHK: Приложение меняет свой класс!

А где там символ "μ"? Я этой программой не пользуюсь, не в курсе.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11 (изменено: BgoN, 2011-06-12 16:10:49)

Re: AHK: Приложение меняет свой класс!

teadrinker пишет:

Я этой программой не пользуюсь

Просто удивительно.

12

Re: AHK: Приложение меняет свой класс!

OFF: Ничего удивительного. Пока что всё, что мне требовалось скачать, находил без торрентов.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13 (изменено: zzzUUUzzz, 2011-06-12 20:56:03)

Re: AHK: Приложение меняет свой класс!

teadrinker пишет:

А где там символ "μ"?

В заголовке окна, который считывается WinGetTitle(). Это греческая буква "Мю" между Альфой и Омегой, началом и концом...

teadrinker пишет:

Я этой программой не пользуюсь, не в курсе.

А, ну ладно, нет жизненной необходимости, есть более важные вещи.

Upd. Уже всё решено. В последней версии класс постоянен, а "Мю" вводил, видимо, неправильно (из Таблицы символов). Чтобы правильно вставить символ, надо нажать Alt 0181 (on the numpad).