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, 2021-11-05 22:02:47)

Re: AHK: PixelSearch and PixelGetColor

teadrinker пишет:

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

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

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

Представьте что этих блоков 50 или больше. Значительно замедление испытывает код, если сравнивать с более ранними системами win7/8/xp.
А какая версия/разрядность AHK, и проводились ли настройки по этим функциям полупрозрачности окон в системе? Если проводились. Какие именно их затрагивают. Я еще тут 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, 2021-11-05 23:39:32)

Re: AHK: PixelSearch and PixelGetColor

Malcev
Хорошо, вы меня убедили. И я почти готов идти сдавать почку, на оплату услуг Lexicona. Если бы не одно Но) До выпуска Win 10, которая как известно является просто модифицированной Win7 с  нарощенным на неё функционалом и изменённой оболочкой, таких проблем не было, и тут закрадывается сомнение - а действительно ли так нужно расширять функционал самого AHK, нежели попытаться убрать мешающую ему функцию Windows? которая наверняка не только Ahk мешает. Мне вот, например еще раскладка левосторонняя уже весь мозг высушила, а функционал новой Win 10 не предусматривает правостороннее переключение вшитыми в него обновлениями, добавленными по просьбе пользователей. Конечно в этом случае AHK с его заменой клавиш очень пригодится, но вот чем более мы обращаемся к такой помощи - тем больше зависим от сотни мелких скриптов, которые должны загружать в попытках обойти этот функционал. Что незаметно съедает наше время, и заставляет заниматься ими всё своё свободное время - что противоречит основному их назначению - высвобождать время и облегчать жизнь.

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, 2021-11-07 00:52:45)

Re: AHK: PixelSearch and PixelGetColor

Malcev пишет:

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

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

ypppu пишет:

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

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

ypppu пишет:

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

Я спросил есть ли у кого-то опыт отключения Aeroglass Win10 также чтобы он выглядел как классическая схема Windows7? А еще спросил принцип его действия АХК этой функции через полупрозрачные окна и как оно вообще работает. Может бы стало всё понятно, откуда начать и что отключать. Так только информацию. Вот и всё что я просил. Никаких написать что-то за меня или прийти и сделать я не просил.

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

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