Скриншот с захватом курсора01.03.2013, 03:23. Показов 15280. Ответов 51
Метки нет (Все метки)
Уважаемые знатоки!
Собственно вопросов как сделать скрин - нет. Но есть вопрос, как сделать, чтобы был виден текущий курсор. На форуме находил вариант, что просто взять и наложить картинку курсора по координатам..это сделал, но в итоге если он меняется к примеру на руку, стрелочки или другой... то на скрине всё равно остаётся стандартный курсор. К примеру создатели скайпа это как то решили в демонстрации экрана.. Надеюсь что есть способ захвата
0
|
|
| 01.03.2013, 03:23 | |
|
Ответы с готовыми решениями:
51
Ошибка с динамическим захватом StringGrid скроллинг ЗАХВАТОМ Помогите разобраться с захватом видео |
| 03.03.2013, 18:39 [ТС] | ||||||
|
Спасибо..только как получить дескриптор курсора, я так и не понял)..точнее как пользоваться этими функциями..
объясните пожалуйста) и ещё такой вопрос...это будет работать на всех окнах..в любых приложениях где находится курсор, или только в том, которое указано в функции FindWindow()...? Добавлено через 1 час 7 минут вроде понял..дескриптор так
но как получить ширину и высоту курсора?..как пользоваться GetCursorInfo()
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
| 03.03.2013, 19:07 | ||||||
|
Короче проще самому написать
Погуглив 30 минут, я нашел как это делается во всех подробностях, вот рабочий код:
1
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 03.03.2013, 19:34 | |
|
Эммм.. ну так уберите ту часть кода, которая делает скриншот, просто в первом посте заявлена именно такая задача. Если вы прочитаете код-то увидите, что они извлекаются отдельно, а потом уже накладываются.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
| 03.03.2013, 19:48 | ||||||
|
Этот способ быстрее шарповского в разы, да и все равно DC извлекать, так что лучше переделайте.
0
|
||||||
| 03.03.2013, 19:53 [ТС] | |
|
Честное слово..читал про них несколько раз на разных сайтах..но никак не могу вникнуть)...
ага..я так и знал что её нужно убрать.. только почему то после этого не все виды курсора видно после удаления BitBlt..к примеру в виде разделителя, который появляется при наведении на текст.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 03.03.2013, 20:08 | |
|
Кстати да, так не видно. Это по всей видимости не считается иконкой курсора, надо придумывать какой-то костыль. В скайпе и других прогах, где курсор передается, видно его в таком положении? Можно теоретически держать в памяти такую картинку, она же не меняется особо, и пихать, когда курсора не видно. Найду нормальный способ-отпишусь. А с изучением функций по-моему все просто, берешь, копипастишь код, и разбираешься как он работаешь при помощи сайтов и методом тыка, а потом юзаешь как хочешь
0
|
|
| 03.03.2013, 20:17 [ТС] | ||||||
|
да..в скайпе видно..
у меня ещё один вопрос.. т.к. я делаю не просто отдельный скрин...а всё это по таймеру и непрерывно (как в том же скайпе)..то вылетает исключение..ругается на
при том это происходит спустя несколько секунд после успешной работы что это может быть?..
0
|
||||||
|
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
|
|
| 03.03.2013, 20:20 | |
|
где то в системе курсор меняется. иконка. вот в эту сторону и нужно копать.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
|
| 03.03.2013, 20:23 | |
|
Да это я ступил, забыл ReleaseDC, сейчас скину код.
0
|
|
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||||||||
| 03.03.2013, 20:41 | ||||||||||||
Добавлено через 3 минуты
0
|
||||||||||||
| 03.03.2013, 20:42 [ТС] | ||||||
|
теперь другое исключение
Опять же через некоторое время после успешного выполнения... только не понятно почему, ведь loGraphics1 в конце чиститься...
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
| 03.03.2013, 20:49 | ||||||
|
Это с
0
|
||||||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||||||
| 03.03.2013, 21:21 | ||||||
|
Нашел кажись в чем дело, сборщик мусора не освобождает память, которую выделили вот тут.
1
|
||||||
| 03.03.2013, 21:29 [ТС] | |
|
Отлично! Огромнейшее спасибо
![]() Только жаль что не виден по прежнему тот самый курсор в виде разделителя на тексте, если удалять весь скрин. и ещё такой вопрос..чисто для уточнения, по функции BitBlt получается она копирует изображение из hdc в lnDst1, а потом с помощью ReleaseHdc(lnDst1) мы помещаем это всё в графикс..правильно я понял?
0
|
|
|
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
|
|||
| 03.03.2013, 21:38 | |||
|
EvilFromHell,
![]() Из МСДН:
0
|
|||
|
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
|
||
| 03.03.2013, 21:52 | ||
|
Ну почти, просто по-моему графикс(мое предположение, но скорее всего так и есть)-это обертка над этими контекстами устройства, ибо представляют из себя они примерно одно и то же-некую виртуальную поверхность для рисования(только в графиксе все эти освобождения должны делаться автоматически, и следить за ними не надо, а если обращаться к DC нарямую, то приходится заниматься этим вручную), соответственно графиксу принадлежит какой-то DC, и чтобы записать графикс на битмап, надо сначала его освободить. А битмап представляет из себя нечто вроде рамы, в которую эта картина пихается. Для более точной информации-надо залезть в соответствующие библиотеки и посмотреть.
Добавлено через 2 минуты Добавлено через 7 минут А на счет неотображения курсора отдельно от BitBlt-странно, логику поищу. Главное все другие отображаются, а такой нет, и только в этом случае.
0
|
||
| 03.03.2013, 21:52 | |
|
Помогаю со студенческими работами здесь
40
Регулярное выражение: сделать текст жирным с захватом даты Как изменить цвет курсора ввода и курсора мыши в элементе Edit Нужна недорогая плата оцифровки видео или USB устройство, только с аппаратным захватом и без твтюнера. Поиск частей внешнего контура по четырём сторонам с "захватом" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|