Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Вывод части изображения выбранного окна поверх всех окон
cirus
сообщение 15.3.2020, 21:59
Сообщение #1


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26703
Пользователь №: 16.971
Возраст: 29



Минимальная версия пилота 2.41.
Архив извлечь рядом с exe пилота.
Прикрепленный файл  LuaPlugins.zip ( 321,26 килобайт ) Кол-во скачиваний: 178

code
Код
--lua
package.path = "LuaPlugins\\winapi\\?.lua;" .. package.path
package.path = "LuaPlugins\\glue\\?.lua;" .. package.path
setfenv(1, require'winapi')

local ffi = require("ffi")
ffi.cdef[[
int GetDC(int hWnd);
BOOL StretchBlt(int hdcDest, int xDest, int yDest, int wDest, int hDest, int hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc, DWORD rop);
]]
local SRCCOPY = 13369376

function visualwindow(hdcDest, xDest, yDest, wDest, hDest, hdcSrc, xSrc, ySrc, percent)
    local wSrc = math.floor((wDest - xDest) * percent / 100)
    local hSrc = math.floor((hDest - yDest) * percent / 100)
    C.StretchBlt(hdcDest, xSrc, ySrc, wSrc, hSrc, hdcSrc, xDest, yDest, wDest - xDest, hDest - yDest, SRCCOPY)
end


local handle = findwindow ("Блокнот")   -- окно, с которого нужно отобразить на экране часть изображения
-- может быть перекрыто (но, не свёрнуто) или быть на другом рабочем столе

if handle then    -- если окно найдено
    local HDC = C.GetDC(0)
    local DC = C.GetDC(handle[1][1])
    while true do
        visualwindow(HDC, 0, 0, 300, 250, DC, 100, 400, 100)
        -- 0, 0, 300, 250 - относительные координаты, с которых будет получено изображение
        -- 100, 400 - абсолютные координаты вывода изображения на экран
        -- 100 - масштаб вывода в процентах (изображение будет сжато или растянуто если не 100%)
        wait(10)
    end
else
    log ("Окно не найдено")
end
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 16.3.2020, 3:57
Сообщение #2


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2397
Пользователь №: 18.746



Цитата(cirus @ 15.3.2020, 21:59) *
Вывод части изображения

Интересная штука (IMG:https://forums.overclockers.ru/images/smilies/good3.gif)


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.4.2024, 13:02
Designed by Nickostyle