捕获电脑桌面并打印

By admin in 图书 on 2020年1月16日

#include <stdio.h> #include <windows.h> //1.使用宏定义来设置扑克牌的宽度和高度 #大奖888网页版登陆,define WIDTH   46 //每张扑克牌的宽度为46像素 #define HEIGHT  62 //每张扑克牌的高度为62像素 int main() { char title[200]; HWND hwnd;//窗口句柄,通过该句柄就能够找到位于内存中的窗口资源 HDC hdc;  //窗口的设备环境 HBITMAP hbmp;//位图句柄 HDC hmemdc;  //内存中的设备环境 int i,j; //2.获取控制台窗口的标题 GetConsoleTitle(title,200); //3.通过标题得到该窗口的句柄 hwnd=FindWindow(NULL,title); //4.获取窗口的DC hdc=GetDC(hwnd); //5.加载全部扑克牌的图片并释放DC hbmp=LoadImage(NULL,”7_25.bmp”,IMAGE_BITMAP,0,0,LR_LOADFROMFILE); hmemdc=CreateCompatibleDC(hdc); //6.把图片选取到内存DC中 SelectObject(hmemdc,hbmp); //7.画到窗口上 //BitBlt(hdc,0,0,WIDTH*13,HEIGHT*5,hmemdc,0,0,SRCCOPY); for(j=0;j<4;++j) { for(i=0;i<13;++i) { BitBlt(hdc,i*(WIDTH+10),j*(HEIGHT+10)+10,WIDTH,HEIGHT, hmemdc,i*WIDTH+1,HEIGHT*j+1,SRCCOPY); } } return 0; }编译时记得加上 -lgdi32

#include <stdio.h>

#include <conio.h>//getch函数要定义此头文件 #include <windows.h> int main() { RECT rect,conrect;//矩形 char title[1024]; HDC hscreendc,hconsoledc,hmemdc;//DC 设备描述符,画板 HBITMAP hbmp;//位图句柄 printf(“按下任意键开始捕获系统桌面n”); getch();//等待输入 hdesktopwnd = GetDesktopWindow();//1.获取桌面窗口的句柄 GetWindowRect(hdesktopwnd,&rect);//2.获取桌面窗口的矩形大小 GetConsoleTitle(title,1024);//3.获取控制平台窗口的标题 hconsolewnd = FindWindow(NULL,title);//4.根据标题获取控制平台窗口句柄 GetWindowRect(hconsolewnd,&conrect);//5.获取控制平台窗口的矩形大小 hscreendc = GetDC(hdesktopwnd);//6.获取桌面窗口的DC hconsoledc = GetDC(hconsolewnd);//7.获取控制台窗口的DC hmemdc = CreateCompatibleDC(hscreendc);//8.创建一个和桌面DC兼容的内存DC //9.把桌面窗口捕获到然后拷贝到兼容DC里 hbmp = CreateCompatibleBitmap(hscreendc,rect.right,rect.bottom); SelectObject(hmemdc,hbmp); BitBlt(hmemdc,0,0,rect.right,rect.bottom,hscreendc,0,0,SRCCOPY); //10.把兼容DC里的位图画到控制台DC上 StretchBlt(hconsoledc,0,0,conrect.right-conrect.left, conrect.bottom-conrect.top,hmemdc,0,0,1920,1280,SRCCOPY); //11.释放资源 DeleteObject(hbmp); DeleteObject(hmemdc); ReleaseDC(hconsolewnd,hconsoledc); ReleaseDC(hdesktopwnd,hscreendc); getch();//让程序暂停 return 0; }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2020 大奖888网页版登陆 版权所有