1 (изменено: yellow, 2021-11-05 19:30:35)

Тема: AHK: PixelSearch and PixelGetColor

Поискав информацию, так и не нашёл вменяемого результата, как без танцев с бубном сделать нормальной работу этих функций "PixelSearch and PixelGetColor". Виной всему встроенная функция WINDOWS 10 AeroSnape и эскизов окон, из-за чего они работают ООООООООчень медленно на Windows 10. Предлагается использовать какие-то костыли, GDI методы и прочее. Неужели нельзя как-то решить этот вопрос с окнами, чтобы отображение на 10-ке было как на 7-ке или более ранних версиях? Там AeroSnape просто отключался через настройки и всё. Тут даже реестр не помогает. Всё зашито куда-то. Кто знает как одним пинком можно сделать также как на более ранних версиях? Эта проблема не только в AHK, Автоитовцы тоже страдают от этого.

2

Re: AHK: PixelSearch and PixelGetColor

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

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3 (изменено: yellow, 2021-11-05 19:55:48)

Re: AHK: PixelSearch and PixelGetColor

__Михаил__ пишет:

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

Речь о допиливании напильником. Для меня было удивление что функционал остаётся в меню всё тот-же, а доступ к нему всё сильнее пытаются извратить, замаскировать/запрятать, облагородить, хотя по сути ничего не меняется. Вот я и хочу узнать у кого-то получилось?

4

Re: AHK: PixelSearch and PixelGetColor

yellow, а как вы используете эти команды? Напишите код, демонстрирующий проблему.

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

5

Re: AHK: PixelSearch and PixelGetColor

teadrinker пишет:

yellow, а как вы используете эти команды? Напишите код, демонстрирующий проблему.

PixelGetColor, TRX, 61, 625, 
PixelGetColor, FDX, 250, 520, 
if (TRX != 0x000000 and FDX != 0x000000)
{
Tooltip, совпадение
}

Примерно таким образом

6

Re: AHK: PixelSearch and PixelGetColor

Никаких проблем с этим кодом, работает достаточно быстро.

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

7

Re: AHK: PixelSearch and PixelGetColor

Довольно быстро и у меня (31мс в среднем):

D := A_TickCount
PixelGetColor, TRX, 61, 625, 
PixelGetColor, FDX, 250, 520, 
if (TRX != 0x000000 and FDX != 0x000000)
 Tooltip, % "Совпадение за " (A_TickCount - D) "мс."
Else
 Tooltip, % "Не совпадение за " (A_TickCount - D) "мс."
Return
Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

8 (изменено: yellow, 2023-01-13 21:28:00)

Re: AHK: PixelSearch and PixelGetColor

teadrinker пишет:

Никаких проблем с этим кодом, работает достаточно быстро.

__Михаил__ пишет:

Довольно быстро и у меня (31мс в среднем):

Представьте что этих блоков 50 или больше. Значительно замедление испытывает код, если сравнивать с более ранними системами win7/8/xp.
А какая версия/разрядность AHK, и проводились ли настройки по этим функциям полупрозрачности окон в системе? Если проводились. Какие именно их затрагивают.

9

Re: AHK: PixelSearch and PixelGetColor

yellow пишет:

Представьте что этих блоков 50 или больше.

Так я же просил показать код, демонстрирующий проблему. Действительно, когда эта функция выполняется в цикле, это может занять неоправданно долгое время, так как каждый раз она, условно говоря, делает снимок всего экрана. Если нужно на одном снимке проверять много разных пикселей, лучше использовать GDI+. Про полупрозрачность не в теме.

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

10

Re: AHK: PixelSearch and PixelGetColor

yellow, а если переключить оформление на "Классическая тема Windows" - быстрее станет?

11 (изменено: yellow, 2021-11-05 22:19:10)

Re: AHK: PixelSearch and PixelGetColor

teadrinker пишет:

Если нужно на одном снимке проверять много разных пикселей, лучше использовать GDI+.

Так если нужно ловить с динамического изображения всплывающих окон и видео, как будет лучше GDI когда даже по логике вещей она больше времени занимает - "Сделать снимок - передать на поиск функции - возвратить назад".

ypppu пишет:

оформление на "Классическая тема Windows"

Нету его. Там какая-то сборка урезанная.
Тогда вопрос - как в урезанной сборке включить классическую схему?
Я так понял её вообще в Win 10 не предусмотрено.

Windows 8 и Windows 10 больше не включают в себя тему Windows Classic, которая не была темой по умолчанию с Windows 2000. 

12

Re: AHK: PixelSearch and PixelGetColor

yellow пишет:

Представьте что этих блоков 50 или больше.

А нафига так много? Поиск картинки не подходит?

Win10x64, AHK v1.1.33.09 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

13 (изменено: yellow, 2021-11-05 22:55:58)

Re: AHK: PixelSearch and PixelGetColor

AvtoITовцы предположительно выходили из этой проблемы отключением масштабирования - функции окон постоянно меняющие координаты точек, и отключением "многозадачности", которая видимо блокирует эту функцию имея над ней приоритет. Пробовал выставить приоритет процесса AHK выше среднего - не очень помогло.

Короче как сказать то? Изначально функции AeroGlass не было потом она была добавлена как дополнение отключаемое, а позже, где-то с переходом от win8-10 появилась Microsoft Edge и полностью интегрировала управление окнами в себя. Сейчас облегчённые сборки полностью выпиливают её функционал, но это гавно с приоритетом слежения за окнами Windows над AHK остаётся.

teadrinker пишет:

огда эта функция выполняется в цикле, это может занять неоправданно долгое время

Это же действие на ранних версиях Windows без повершелл и эдж занимают в 10 раз меньше времени. Вот я и спрашиваю - как её выпилить? Или как отследить уровень приоритета обращения к окнам самой системой и сторонними приложениями? Потому что тот же Discord например видит что к окну обратился Twitch и автоматически отключает уведомления.

14

Re: AHK: PixelSearch and PixelGetColor

Если вам надо искать много пикселей, то либо используйте любое из апи - gdi, gdi+, directx, для получения копии экрана, получайте ссылку на биты и сравнивайте их с вашими, либо просите lexikosa на расширение фунционала autohotkey.
Но думается мне, что без соответствующего вознаграждения он это делать не будет.

15

Re: AHK: PixelSearch and PixelGetColor

Malcev пишет:

копии экрана

Копия экрана каждые 10 мс? А чем это лучше самой функции PixelGetColor? И почему в других версиях проблем не наблюдается?

Malcev пишет:

либо просите lexikosa на расширение фунционала autohotkey.

А в чём заключается расширение?

16

Re: AHK: PixelSearch and PixelGetColor

Autohotkey для всех манипуляций с графикой использует ущербный gdi.
Но даже несмотря на это, gdi вполне достаточно чтобы добавить пару функций в исходный код autohotkey, которые многим рядовым пользователям облегчили бы жизнь.
Осталось узнать почасовку lexikosa.
PixelGetColor, в быстром режиме возвращает вам пиксель через GetDIBits.
А вам нужна функция, которая возвратит массив пикселей.
В медленном же режиме, она использует GetPixel, что конечно же тормозит.

17 (изменено: yellow, 2023-01-13 21:14:10)

Re: AHK: PixelSearch and PixelGetColor

Malcev
Хорошо, вы меня убедили.

18

Re: AHK: PixelSearch and PixelGetColor

yellow пишет:

До выпуска Win 10, которая как известно является просто модифицированной Win7 с  нарощенным на неё функционалом

Во-первых, это не так.
Во-вторых, если не хотите продавть почку, то либо оставайтесь на Win7, на котором через пару лет и в интернет не выйдешь, либо почитайте про функции gdi,gdi+ и напишите свою функцию.

19

Re: AHK: PixelSearch and PixelGetColor

Согласен с yellow, что мы сильно зависим от ОС, программ, компьютеров... А ещё от наличия автомобиля, денежных средств, от образования, от наличия учебных заведений, от окружающих нас людей и многих других факторов. Но нас никто не заставляет пользоваться Win 10, и никто не заставляет идти на работу, на которой заставляют пользоваться Win 10. Если это, конечно, не принудительно-исправительные работы. Никто никогда не заставит оплачивать услуги lexikosa. Никто не заставляет пользоваться AutoHotkey. Если хотите пользоваться AutoHotkey, но так, чтобы всё за Вас сделали... Ну, хотеть не вредно. https://i.smiles2k.net/hello_byby_smiles/Tip-Hat.gif

20 (изменено: yellow, 2023-01-13 21:18:15)

Re: AHK: PixelSearch and PixelGetColor

Malcev пишет:

через пару лет и в интернет не выйдешь

Мне также про XP говорили, в итоге можно выйти и через 10 лет.

ypppu пишет:

А ещё от наличия автомобиля, денежных средств, от образования, от наличия учебных заведений, от окружающих нас людей и многих других факторов.

От того, что сами создаём.

ypppu пишет:

Никто не заставляет пользоваться AutoHotkey. Если хотите пользоваться AutoHotkey, но так, чтобы всё за Вас сделали...

Я спросил есть ли у кого-то опыт отключения Aeroglass Win10

21

Re: AHK: PixelSearch and PixelGetColor

yellow, а что у Вас в Панели управления? Сделайте скриншот раздела "Персонализация". У меня вот так выглядит.

Post's attachments

темы оформления.png 332.47 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

22

Re: AHK: PixelSearch and PixelGetColor

yellow, возможно из-за того, что вы понаставили всяких сторонних отключалок у вас все и тормозит.

23 (изменено: yellow, 2021-11-07 20:32:54)

Re: AHK: PixelSearch and PixelGetColor

ypppu пишет:

yellow, а что у Вас в Панели управления? Сделайте скриншот раздела "Персонализация". У меня вот так выглядит.

Какой билд и какие дополнения делали? У меня такого вообще нет. Там просто стандартных 4 схемы и возможность настроить. Но в них нет возможности убрать Aero Glass, возможно в вашем дополнении просто косметическое (визуальное) сходство с "классикой" а так те же загораживания окон и проблемы это не решит. На семерке классика полностью убирала эти эффекты.

24

Re: AHK: PixelSearch and PixelGetColor

Кажись вспомнил. На десятке нету классической темы. Но Aero как-то можно было отключить. Поищите в этом направлении.
https://pcfaq.info/sistema/11-kak-otkly … -aero.html

25

Re: AHK: PixelSearch and PixelGetColor

ypppu пишет:

Кажись вспомнил. На десятке нету классической темы. Но Aero как-то можно было отключить. Поищите в этом направлении.
https://pcfaq.info/sistema/11-kak-otkly … -aero.html

Нет, это не помогает. Там остаётся эта полупрозрачность. У меня вообще второй кнопки нету. Она якобы отключается в оформлении, но там даже с выключенной галочкой окно всё-равно прозрачное. Это система Metro
https://i.ibb.co/gtMw8rJ/Imagdfse-3.jpg https://i.ibb.co/H4Rk9DX/Image-sda2.jpg https://i.ibb.co/MhrqyxJ/Imagecv-1.jpg

26

Re: AHK: PixelSearch and PixelGetColor

Тогда не знаю, как помочь. Сам не спешу переползать с семёрки.

27 (изменено: yellow, 2023-01-13 20:59:23)

Re: AHK: PixelSearch and PixelGetColor

Актуально.
Нужна платная помощь по GDI+ или допфункция в AHK, способная обойти эту проблему. Помнится предложение было собственную сетку на экран писать под ахк?

28 (изменено: yellow, 2023-01-13 21:46:49)

Re: AHK: PixelSearch and PixelGetColor

Malcev пишет:

Но даже несмотря на это, gdi вполне достаточно чтобы добавить пару функций в исходный код autohotkey, которые многим рядовым пользователям облегчили бы жизнь.
Осталось узнать почасовку lexikosa.

Как это описать для него? Что он должен сделать?

29

Re: AHK: PixelSearch and PixelGetColor

А хватит ли вашего бюджета для оплаты программиста из Австралии?

30

Re: AHK: PixelSearch and PixelGetColor

Malcev пишет:

А хватит ли вашего бюджета для оплаты программиста из Австралии?

А я откуда знаю, они что, как-то по другому видят деньги?

31

Re: AHK: PixelSearch and PixelGetColor

Я бы написал ему в личку, что хочу оплатить его услуги по внедрению в исходник ахк функции, которая делает снимок экрана и возвращает массив пикселей, которые вы потом можете сравнивать между собой.
ИМХО рассчитывайте от 2000-3000$ и выше.

32 (изменено: yellow, 2023-01-13 23:17:25)

Re: AHK: PixelSearch and PixelGetColor

Malcev пишет:

Я бы написал ему в личку, что хочу оплатить его услуги по внедрению в исходник ахк функции, которая делает снимок экрана и возвращает массив пикселей, которые вы потом можете сравнивать между собой.
ИМХО рассчитывайте от 2000-3000$ и выше.

Личка у него закрыта. На форум написал. Ну я по цене вижу что не стоит этого делать) Вроде бы местные участники предложили какое-то решение.

33

Re: AHK: PixelSearch and PixelGetColor

Гуглите по форуму lockbits.

34 (изменено: yellow, 2023-01-14 00:32:42)

Re: AHK: PixelSearch and PixelGetColor

Malcev пишет:

Гуглите по форуму

А можно ли переименовывая rundll32.exe в dwm.exe под Windows 10 привести к отключению desktop composition без ущерба для остальных программ?
Проблема то глобальная как оказалось - с этими композициями производительность некоторых программ падала в разы.

35

Re: AHK: PixelSearch and PixelGetColor

Не пробовал, но уверен, что получите кучу глюков.