Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как получить изображение экрана

10K
11 октября 2009 года
palevo060
144 / / 05.09.2009
У кого есть исходник проги, которая делает скриншот экрана. Желательно на Win32API.
297
11 октября 2009 года
koodeer
1.2K / / 02.05.2009
В Исходниках КодНета есть нечто:
http://sources.codenet.ru/download/1231/Screen_txt.html
http://sources.codenet.ru/download/3283/scr_lite_source.html
[color=gray]Рабочие примеры или нет, не знаю, не качал.[/color]
10K
11 октября 2009 года
palevo060
144 / / 05.09.2009
Хорошобы еще парочку внятных примерчиков, а то никак не разберусь


Вот я тут писал клиент. И пытаюсь встроить функцию которая будет копировать экран и сохранять в файл, но понятия не имею как это делается. Функция которая должна якобы каптить экран в середине
начинается с INVOKE GetDC, hSImage. Что в ней не так. Сам клиент прикрасно работает, а каптилка нет.

Цитата:



.486
.model flat,stdcall
option casemap:none

include MyInc.inc

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\wsock32.inc
include \masm32\include\comdlg32.inc
include \masm32\include\gdi32.inc


includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\wsock32.lib
includelib \masm32\lib\comdlg32.lib
includelib \masm32\lib\gdi32.lib


.data
AppMessadge db 'Client',0
Message db 'Клиент подключился',13,0
ErrorConnect db 'Нет соединения',0
ofn OPENFILENAME <>
wsadata WSADATA <>
sin sockaddr_in <>
Buffer1 db 10000 dup(0)
SaveFileAddres db 'D:\ClientSave.txt',0
MySmtp db '0.0.0.0',0
EditClass db "edit",0
BigMessage db 'Сообщение слишком большое! Смотри в файле D:\ClientSave.txt',0
FilterString db "All Files",0,"*.*",0
db "Text Files",0,"*.txt",0,0
hSImage dd 0
hDC db 0
hMemDC dd 0
hBmp dd 0
BmpHeader db 26 dup(0)

.data?
sock dd ?


hFile HANDLE ?
hMemory HANDLE ?
pMemory DWORD ?
SizeReadWrite DWORD ?

.const
MEMSIZE equ 65535
.code
start:


invoke WSAStartup,101h,addr wsadata
invoke socket,AF_INET,SOCK_STREAM,IPPROTO_IP
mov sock,eax
mov sin.sin_family,AF_INET
invoke htons,1000
mov sin.sin_port,ax
invoke inet_addr, addr MySmtp
mov sin.sin_addr, eax

invoke connect, sock, addr sin ,sizeof sin
invoke MySend,addr Message
invoke MyRecv,addr Buffer1
invoke ConsiderSumbol,addr Buffer1
.IF eax < 50
invoke MessageBox,0,addr Buffer1,addr AppMessadge,MB_OK
.ELSE
invoke MessageBox,0,addr BigMessage,addr AppMessadge,MB_OK
.ENDIF

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


INVOKE GetDC, hSImage ;Get the dc of the dest window
mov dword ptr [hDC], eax
INVOKE CreateCompatibleDC, hDC ;Create a compatible dc in memory
mov hMemDC, eax
INVOKE SelectObject, hMemDC, hBmp ;Select the opened bitmap into the dc
INVOKE GetObject, hBmp, 26, addr BmpHeader
mov ebx, dword ptr [BmpHeader+4] ;BmpHeader+4 = image width
mov ecx, dword ptr [BmpHeader+8] ;BmpHeader+8 = image height
add ebx, 6
add ecx, 6


INVOKE StretchBlt,hDC, 0, 0,320,240,hMemDC,0,0,\
dword ptr [BmpHeader+4], dword ptr [BmpHeader+8], SRCCOPY



invoke SaveInFile, ADDR BmpHeader

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

invoke ExitProcess,0


MyRecv proc String :DWORD
mov edi,String
.WHILE TRUE
@1:.IF eax == SOCKET_ERROR
invoke MessageBox, NULL, addr ErrorConnect, addr ErrorConnect, MB_OK
invoke connect, sock, addr sin ,sizeof sin
jmp @1
.ENDIF
invoke recv,sock,edi,1,0
.BREAK .IF ( byte ptr [edi] == 00 )
inc edi

.ENDW
ret
MyRecv endp


MySend proc String :DWORD
mov edi,String
.WHILE TRUE
.BREAK .IF ( byte ptr [edi] == 00 )
@1:.IF eax == SOCKET_ERROR
invoke MessageBox, NULL, addr ErrorConnect, addr ErrorConnect, MB_OK
invoke connect, sock, addr sin ,sizeof sin
jmp @1
.ENDIF
invoke send,sock,edi,1,0
inc edi
.ENDW
ret
MySend endp

include MyProc.inc
end start


Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог