powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / PrintScreen
11 сообщений из 11, страница 1 из 1
PrintScreen
    #32396371
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Здраствуйте господа!

Я ищу способ сделать принтскрин и запихать его хотя бы в файл.
Точнее потом из файла буду вставлять в таблицу Access.
Кто сможет подсказать, и желательно подсказать: как мне это все реализовать?
...
Рейтинг: 0 / 0
PrintScreen
    #32396585
Tracer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
PrintScreen
    #32396676
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Интересно конечно, только ничего не понимаю.

Поясните пожалуйста, как это на win api сделать, потому что я все это буду вставлять в VB.
...
Рейтинг: 0 / 0
PrintScreen
    #32396692
Фотография # Darth Vader #
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Я
Жду вместе с тобой.
Хочу маленького глазастого шпиончика сделать.
...
Рейтинг: 0 / 0
PrintScreen
    #32396695
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
:)
...
Рейтинг: 0 / 0
PrintScreen
    #32396951
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
А проще, как мне изображение экрана перекинуть в Dim b() As Byte(это на VB)
...
Рейтинг: 0 / 0
PrintScreen
    #32397277
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты не в тот форум зашел. Здесь все на C++ делают
...
Рейтинг: 0 / 0
PrintScreen
    #32397364
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
А я и спрашиваю, как это все на WinAPI сделать.

По-моему о WinAPI на этом форуме знают больше остальных.
...
Рейтинг: 0 / 0
PrintScreen
    #32397504
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<ctrl>-prntscrn :)

А лучше в rsdn поискать, там точно такой вопрос подымался.

Первое, что в голову приходит:
1. Получить хэндл десктопа
2. Создать компатибл CD на десктоп.
2.1 (ну и битмамы к обоим)
3. Делаем BitBlt(...)
4. GetDIBits копируем в буфер.

Тока вот сомнительно, что BitBlt в данном случае правильно отработает.... То есть она именно с десктопа всё скопирует.

Ну или ещё дурной вариант :)
Перебрать все дочерние окна десктопа в порядке Z-order'а с самого нижнего до самого верхнего :)
Но тут тоже может случиться облом. Если например попадутся круглые окна :) У меня вот на десктопе сверху(Z) как раз висит круглое окно.
...
Рейтинг: 0 / 0
PrintScreen
    #32397585
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
Если я правильно понял то так:


Option Compare Database
Option Explicit
Private Declare Function BitBlt Lib "gdi32" _
(ByVal hDestDC As Long, ByVal X As Long, _
ByVal Y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal hSrcDC As Long, _
ByVal XSrc As Long, ByVal YSrc As Long, _
ByVal dwRop As Long) As Long
Private Declare Function GetDesktopWindow _
Lib "user32" () As Long
Private Declare Function GetDC _
Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" _
(ByVal hWnd As Long, ByVal hdc As Long) As Long
Private Const SRCCOPY = &HCC0020

Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Sub Command1_Click()
Dim hdc As Long
Dim hwndScreen As Long 'хендл рабочего стола
Dim hScreenDC As Long 'контекст устройства рабочего стола
Dim Res As Long
Dim PicBits() As Byte

ReDim PicBits(1440054) As Byte -а где этот размер взять?
hwndScreen = GetDesktopWindow() ' получаем хендл на рабочий стол
hScreenDC = GetDC(hwndScreen) 'получаем контекст устройства рабочего стола

GetBitmapBits hScreenDC, UBound(PicBits), PicBits(0)
Open "C:\1.bmp" For Binary Access Write As #1
Put #1, , PicBits
Res = ReleaseDC(hwndScreen, hScreenDC) 'освобождаем ресурс
End Sub

Получается пустой файл размером 1440054. Массив содержит одни нули. В чем ошибка?
...
Рейтинг: 0 / 0
PrintScreen
    #32397719
Tracer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПоясните пожалуйста, как это на win api сделать

По ссылке, которой я дал, есть ещё одна - download src code
Качаешь исходники и смотришь - pure Win API.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / PrintScreen
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]