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

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

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

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

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

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

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

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


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
04.02.2004, 11:54
    #32397719
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PrintScreen
авторПоясните пожалуйста, как это на win api сделать

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


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