录屏保存avi


录屏保存avi
资源截图
代码片段和文件信息
#include “stdio.h“
#include “time.h“
#include 
#include 
#pragma comment(lib“vfw32.lib“)

int main(int argcchar *argv[])

HWND hwndCalc = GetDesktopWindow();
RECT rect;GetClientRect(hwndCalc&rect);
HDC hdcCalc = GetDC(hwndCalc);  
HDC hdcCalcBuf = CreateCompatibleDC(NULL);  
HBITMAP hBitmap = CreateCompatibleBitmap(hdcCalcrect.rightrect.bottom);  
Selectobject(hdcCalcBuf hBitmap);  

AVIFileInit();
PAVIFILE pAviFile;
AVIFileOpen(&pAviFile“test.avi“OF_CREATE|OF_WRITENULL);

AVISTREAMINFO aviStreamInfow;
memset(&aviStreamInfow0sizeof(aviStreamInfow));
aviStreamInfow.fccType = streamtypeVIDEO;
aviStreamInfow.dwRate = 15; //每秒12帧
aviStreamInfow.dwScale = 1;
aviStreamInfow.rcframe.right = rect.right;
aviStreamInfow.rcframe.bottom = rect.bottom;
aviStreamInfow.dwSuggestedBufferSize  = rect.right*rect.bottom*32;
strcpy(aviStreamInfow.szName“test.avi“);


PAVISTREAM pVideoStream;
AVIFileCreateStream(pAviFile&pVideoStream&aviStreamInfow);

BITMAPINFOHEADER bmpInfoHdr;
bmpInfoHdr.biSize = sizeof(BITMAPINFOHEADER);
bmpInfoHdr.biWidth = rect.right;
bmpInfoHdr.biHeight = -rect.bottom;
bmpInfoHdr.biBitCount = 32;
bmpInfoHdr.biCompression = BI_RGB;
bmpInfoHdr.biSizeImage = 0;
bmpInfoHdr.biClrImportant = 0;
bmpInfoHdr.biClrUsed = 0;
bmpInfoHdr.biXPelsPerMeter = 0;
bmpInfoHdr.biYPelsPerMeter = 0;
bmpInfoHdr.biPlanes = 1;

clock_t start_time = clock();
int buff_bitSize = rect.right*rect.bottom*4;  
BYTE *buff_pBits = new BYTE[buff_bitSize];
for(int i=0;i<75;i++)
{
BitBlt(hdcCalcBuf 0 0 rect.rightrect.bottom hdcCalc 0 0 SRCCOPY);  
LONG dl = GetBitmapBits(hBitmap buff_bitSize buff_pBits);  
if(dl != 0)
{
AVIStreamSetFormat(pVideoStreami&bmpInfoHdrsizeof(bmpInfoHdr));
AVIStreamWrite(pVideoStreami1(LPBYTE)buff_pBitsbuff_bitSizeAVIIF_KEYframeNULLNULL);
}
char title[10];
sprintf(title“frame=%d“i);
SetConsoletitle(title);
}
free(buff_pBits);   

if(pVideoStream)
{
pVideoStream->Release();
pVideoStream = NULL;
}
if(pAviFile)
{
pAviFile->Release();
pAviFile = NULL;
}
AVIFileExit();

Deleteobject(hBitmap);  
ReleaseDC(hwndCalchdcCalc);  
return 1;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-02-16 18:18  录屏保存avi
     目录           0  2017-02-16 18:19  录屏保存aviDebug
     文件       15356  2017-02-16 11:29  录屏保存aviDebugmain.obj
     文件           0  2017-02-16 11:29  录屏保存aviDebugmain.sbr
     文件      156672  2017-02-16 18:18  录屏保存aviDebugvc60.idb
     文件       86016  2017-02-16 11:29  录屏保存aviDebugvc60.pdb
     文件     2114560  2017-02-16 11:29  录屏保存aviDebug录屏保存api.bsc
     文件      155730  2017-02-16 11:29  录屏保存aviDebug录屏保存api.exe
     文件      193308  2017-02-16 11:29  录屏保存aviDebug录屏保存api.ilk
     文件     4967036  2017-02-16 11:05  录屏保存aviDebug录屏保存api.pch
     文件      443392  2017-02-16 11:29  录屏保存aviDebug录屏保存api.pdb
     文件        2280  2017-02-16 11:29  录屏保存avimain.cpp
     文件        4341  2017-02-16 10:50  录屏保存avi录屏保存api.dsp
     文件         547  2017-02-16 10:38  录屏保存avi录屏保存api.dsw
     文件       41984  2017-02-16 18:18  录屏保存avi录屏保存api.ncb
     文件       48640  2017-02-16 18:18  录屏保存avi录屏保存api.opt
     文件         256  2017-02-16 18:18  录屏保存avi录屏保存api.plg
     文件         106  2017-02-16 11:29  录屏保存avi录屏保存api.positions

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)