1

Тема: AHK: Захват монитора с помощью лупы Magnification API

Тема для обсуждения "Захват монитора с помощью лупы Magnification API".
http://forum.script-coding.com/viewtopic.php?id=17699

2

Re: AHK: Захват монитора с помощью лупы Magnification API

Malcev пишет:

Алгоритм кода был сделан ранее serzh82saratov с небольшой моей помощью.

Да там если бы не ты, то я и не написал бы ничего.

Пара вопросов.
В API можно указать не исключаемые окна, а только нужные?
По производительности не сравнивал? Ты уже наверное все возможные способы захватов реализовал, есть ли какой то рейтинг производительности по ним?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Захват монитора с помощью лупы Magnification API

serzh82saratov пишет:

В API можно указать не исключаемые окна, а только нужные?

Это нашёл, на 10ке появилось.
https://learn.microsoft.com/en-us/windo … filterlist

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Захват монитора с помощью лупы Magnification API

Разве появилось, там наоборот написано, что начиная с win-7 это убрали.

5

Re: AHK: Захват монитора с помощью лупы Magnification API

Вот я балда, наоборот прочитал, оно значит в ХР было, а в 7ке выпилили. Ясно, в общем нет вариантов.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: Захват монитора с помощью лупы Magnification API

Теоретически можно пробовать инжектиться в каждый новый процесс и ставить SetWindowDisplayAffinity на все новые окна.
Я, правда, еще не тестировал стало ли работать это с layered windows на win11.

7

Re: AHK: Захват монитора с помощью лупы Magnification API

По производительности через лупу кушает много.
Лучше на с++ что-то подобное пробовать искать.

8

Re: AHK: Захват монитора с помощью лупы Magnification API

Имеешь ввиду что на С++ этот же код будет работать заметно быстрее, api ведь тоже самое?
И в принципе по всем методам DirectX и.т.п., какие самые быстрые и самые медленные по твоему?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Захват монитора с помощью лупы Magnification API

Насчет лупы не знаю, так-как это апи не преднозначено для сохранения экрана.
Но всё-равно однопоточный автохотки по скорости будет проигрывать.
По производительности я бы смотрел в сторону Desktop Duplication API или WindowsGraphicsCapture API.
А задача какая?
Если бюджет позволяет, то можно поискать реверс-инженера, который хакнет dwm и будет получать изображение напрямую.

10

Re: AHK: Захват монитора с помощью лупы Magnification API

Malcev пишет:

Но всё-равно однопоточный автохотки по скорости будет проигрывать.

А в несколько потоков что делать, если одну картинку надо сохранить например?

Malcev пишет:

А задача какая?

Пока никакой, интересуюсь. Хак dwm ты встречал где то, что даёт?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Захват монитора с помощью лупы Magnification API

serzh82saratov пишет:

А в несколько потоков что делать, если одну картинку надо сохранить например?

Например в 1 получаешь, во втором сохраняешь.
Это надо уже у c++ спрашивать.

serzh82saratov пишет:

Хак dwm ты встречал где то, что даёт?

Конечно встречал. Их постоянно геймеры пишут.
DWM через directx собирает все окна и отрисовывает их.
Цель хакера внедриться в этот процесс и перехватить функцю отрисовки.
Вот автор вроде опытный.
https://gmh5225.github.io/about/
https://github.com/gmh5225/awesome-game-security

12

Re: AHK: Захват монитора с помощью лупы Magnification API

Malcev пишет:

Например в 1 получаешь, во втором сохраняешь.

Это синхронные действия, для одной картинки не ускоришь, вот если серию делать, то да. Кстати не пробовал на AHK_H в другой поток передавать битмап?

Malcev пишет:

Конечно встречал. Их постоянно геймеры пишут.

В смысле написали 1000 раз, но никто не выложил? Или там для каждой игры что то переписывать надо, а на рабочий стол он просто никому не нужен?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13 (изменено: Malcev, 2023-03-20 15:59:41)

Re: AHK: Захват монитора с помощью лупы Magnification API

Кстати не пробовал на AHK_H в другой поток передавать битмап?

Неа, я вообще AHK_H не использовал.

Или там для каждой игры что то переписывать надо

Скорее всего надо переписывать для каждой новой версии windows или при нахождении этих инжектов античитовыми программами.
По моей ссылке много различных вариантов перехвата и инжекта в dwm.
Например вот:
https://github.com/lainswork/dwm-screen-shot

14

Re: AHK: Захват монитора с помощью лупы Magnification API

Malcev пишет:

надо переписывать для каждой новой версии windows или при нахождении этих инжектов античитовыми программами.

То есть к конкретной программе привязки быть не может (кроме античита).

serzh82saratov пишет:

Кстати не пробовал на AHK_H в другой поток передавать битмап?

Я не пробовал. Как думаешь теоретически возможно? Передаём указатель на битмап в другой поток, поток в том же процессе, но непонятно контекст GDIP в этом потоке тот же или нет.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15

Re: AHK: Захват монитора с помощью лупы Magnification API

serzh82saratov пишет:

То есть к конкретной программе привязки быть не может (кроме античита).

Не совсем понял, что ты имеешь в виду?
Не знаю на счет ahk_h, но битмап можно передовать между процессами.
https://stackoverflow.com/questions/253 … -processes

16

Re: AHK: Захват монитора с помощью лупы Magnification API

Malcev пишет:

Не совсем понял, что ты имеешь в виду?

Я про то что если на нескольких ПК нет античитов и одинаковые ОС, то один код будет работать в любых приложениях на них.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17

Re: AHK: Захват монитора с помощью лупы Magnification API

Я думаю да, хотя если приложение отрисовывается не через dwm, как например direct3d полноэкранные игры, то тогда надо уже будет инжектиться в него.