局域网软件运行监控系统源程序vc++Word格式.docx

上传人:b****4 文档编号:6835972 上传时间:2023-05-07 格式:DOCX 页数:19 大小:20.38KB
下载 相关 举报
局域网软件运行监控系统源程序vc++Word格式.docx_第1页
第1页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第2页
第2页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第3页
第3页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第4页
第4页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第5页
第5页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第6页
第6页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第7页
第7页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第8页
第8页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第9页
第9页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第10页
第10页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第11页
第11页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第12页
第12页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第13页
第13页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第14页
第14页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第15页
第15页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第16页
第16页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第17页
第17页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第18页
第18页 / 共19页
局域网软件运行监控系统源程序vc++Word格式.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

局域网软件运行监控系统源程序vc++Word格式.docx

《局域网软件运行监控系统源程序vc++Word格式.docx》由会员分享,可在线阅读,更多相关《局域网软件运行监控系统源程序vc++Word格式.docx(19页珍藏版)》请在冰点文库上搜索。

局域网软件运行监控系统源程序vc++Word格式.docx

SendCommandData(inttype,char*buf,intlen)

{NETPACKAGEpack;

pack.type=type;

pack.len=len;

memset(pack.buf,7,pklen-8);

memcpy(pack.buf,buf,len);

Send((char*)&

pack,pklen,0);

CSreenServerDlg.CPP

voidCSreenServerDlg:

OnTimer(UINTnIDEvent){

Addyourmessagehandlercodehereand/orcalldefault

if(pclient!

=NULL){

CapSreen();

SentSreen(hBitmap,pclient);

CDialog:

OnTimer(nIDEvent);

SentSreen(HBITMAPhBitmap,CClientSock*pc){

HDChDC=:

CreateDC("

DISPLAY"

NULL,NULL,NULL);

intiBits=:

GetDeviceCaps(hDC,BITSPIXEL)*:

GetDeviceCaps(hDC,PLANES);

//当前分辨率下每个像素所占字节数

:

DeleteDC(hDC);

WORDwBitCount;

//位图中每个像素所占字节数

if(iBits<

=1)

wBitCount=1;

elseif(iBits<

=4)

wBitCount=4;

=8)

wBitCount=8;

=24)

wBitCount=24;

else

wBitCount=iBits;

DWORDdwPaletteSize=0;

//调色板大小,位图中像素字节大小

if(wBitCount<

=8)

dwPaletteSize=(1<

<

wBitCount)*sizeof(RGBQUAD);

BITMAPbm;

//位图属性结构

GetObject(hBitmap,sizeof(bm),(LPSTR)&

bm);

BITMAPINFOHEADERbi,bi1;

//位图信息头结构

bi.biSize=sizeof(BITMAPINFOHEADER);

bi.biWidth=bm.bmWidth;

bi.biHeight=bm.bmHeight;

bi.biPlanes=1;

bi.biBitCount=wBitCount;

bi.biCompression=BI_RGB;

//BI_RGB表示位图没有压缩

bi.biSizeImage=0;

bi.biXPelsPerMeter=0;

bi.biYPelsPerMeter=0;

bi.biClrUsed=0;

bi.biClrImportant=0;

bi1=bi;

bi1.biBitCount=24;

DWORDdwBmBitsSize=((bm.bmWidth*wBitCount+31)/32)*4*bm.bmHeight;

HANDLEhDib=:

GlobalAlloc(GHND,dwBmBitsSize+dwPaletteSize+sizeof(BITMAPINFOHEADER));

//为位图内容分配内存

LPBITMAPINFOHEADERlpbi=(LPBITMAPINFOHEADER)GlobalLock(hDib);

*lpbi=bi;

HANDLEhPal=:

GetStockObject(DEFAULT_PALETTE);

//处理调色板

HANDLEhOldPal=NULL;

if(hPal){

hDC=:

GetDC(NULL);

hOldPal=SelectPalette(hDC,(HPALETTE)hPal,FALSE);

RealizePalette(hDC);

intnOutputBytes=0;

unsignedchar*m_pDibBits;

m_pDibBits=newunsignedchar[dwBmBitsSize];

GetDIBits(hDC,hBitmap,0,(UINT)bm.bmHeight,(LPSTR)lpbi+sizeof(BITMAPINFOHEADER)+dwPaletteSize,(BITMAPINFO*)lpbi,DIB_RGB_COLORS);

//获取该调色板下新的像素值

if(hOldPal)//恢复调色板

{SelectPalette(hDC,(HPALETTE)hOldPal,TRUE);

:

ReleaseDC(NULL,hDC);

inti=0,j=0;

unsignedchar*pcolor;

pcolor=(unsignedchar*)lpbi+sizeof(BITMAPINFOHEADER)+dwPaletteSize;

//得到像素值

for(j=0;

j<

dwBmBitsSize;

j++){

if(j%4==3)

j++;

m_pDibBits[i]=pcolor[j];

i++;

//////////////////////////发送图像头信息/////////////////////////////

CapSreenHeadercheader;

cheader.factlen=i;

//图像长度

NETPACKAGEpack;

longfilestep=0;

longfileend=0;

longlFileSize=i;

//图像长度

intend=0;

intlen=0;

intdtlen=50000;

//数据块长度

intplen=sizeof(NETPACKAGE);

//数据包长度50008

filestep=lFileSize/dtlen;

//数据块数

fileend=lFileSize%dtlen;

//最后一块数据长度

cheader.filelength=lFileSize;

////图像文件长度

cheader.blocklen=dtlen;

cheader.width=bm.bmWidth;

//图像宽度

cheader.height=bm.bmHeight;

//图像高度

pack.type=3;

//图像头命令

pack.len=sizeof(cheader);

//图像头信息长度

memset(pack.buf,7,dtlen);

memcpy(pack.buf,(char*)&

cheader,pack.len);

pc->

Send((unsignedchar*)&

pack,plen,0);

//发送图像头信息

Sleep(100);

////////////////////发送图像内容/////////////////

pack.type=4;

//图像内容命令

pack.len=dtlen;

//图像块长度

for(j=0;

filestep;

memcpy(pack.buf,&

m_pDibBits[j*dtlen],dtlen);

//发送图像信息}

pack.type=5;

////最后一块数据命令

pack.len=fileend;

memcpy(pack.buf,&

m_pDibBits[filestep*dtlen],fileend);

//发送最后一块数据

//发送图像头信息

GlobalUnlock(hDib);

//清除

GlobalFree(hDib);

delete[]m_pDibBits;

SendSreenToClient(){

if(pclient!

=NULL&

&

islogin==1)

{CapSreen();

}}

附录客户端

CsreenClientDlg.CPP

BOOLCSreenClientDlg:

OnInitDialog(){

OnInitDialog();

//Add"

About..."

menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.

ASSERT((IDM_ABOUTBOX&

0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<

0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

{CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if(!

strAboutMenu.IsEmpty())

{pSysMenu->

AppendMenu(MF_SEPARATOR);

pSysMenu->

AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically

//whentheapplication'

smainwindowisnotadialog

SetIcon(m_hIcon,TRUE);

//Setbigicon

SetIcon(m_hIcon,FALSE);

//Setsmallicon

Addextrainitializationhere

pclient=NULL;

//定义一个socket类型的借口指针

m_ip="

127.0.0.1"

;

//初始化默认ip为本机

m_port=3009;

//初始化端口为3009

m_usrpwd="

123"

m_usrname="

aaa"

UpdateData(FALSE);

//将控件关联变量的值传递给控件并改变控件的状态

m_pBIH=NULL;

//位图头

m_pDibBits=NULL;

//接收图像数据偏移

m_pDib=NULL;

pklen=sizeof(NETPACKAGE);

//获取数据包的程度

lbitsOffset=0;

capflag=0;

bcontrol=0;

initDrawParam();

returnTRUE;

//returnTRUEunlessyousetthefocustoacontrol}

voidCSreenClientDlg:

OnButtonGetcap()

{//TODO:

Addyourcontrolnotificationhandlercodehere

=NULL)

pclient->

SendCommandData(3,(char*)&

usrinfo,sizeof(USERINFO));

OnButtonSavebmp()//保存bmp图片

charszFilter[]="

Allfiles(*.*)|*.*|bmpfiles(*.bmp)|*.bmp||"

CFileDialogfd(false,"

bmp"

"

OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,NULL);

if(IDOK==fd.DoModal())

{m_filename=fd.GetPathName();

WriteBmpToFile(hBitmap,m_filename);

UpdateData(FALSE);

WriteBmpToFile(HBITMAPhBitmap,CStringstrFileName)

{HDChDC=:

intiBits=:

WORDwBitCount;

HANDLEhPal=:

if(hPal)

{hDC=:

}

BITMAPFILEHEADERbmfHdr;

//位图文件头结构

bmfHdr.bfType=0x4D42;

//"

BM"

//设置位图文件头

DWORDdwDIBSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+dwPaletteSize+dwBmBitsSize;

bmfHdr.bfSize=dwDIBSize;

bmfHdr.bfReserved1=0;

bmfHdr.bfReserved2=0;

bmfHdr.bfOffBits=(DWORD)sizeof(BITMAPFILEHEADER)+(DWORD)sizeof(BITMAPINFOHEADER)+dwPaletteSize;

HANDLEhFile=CreateFile(strFileName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,NULL);

//创建位图文件

DWORDdwWritten;

WriteFile(hFile,(LPSTR)&

bmfHdr,sizeof(BITMAPFILEHEADER),&

dwWritten,NULL);

//写入位图文件头

WriteFile(hFile,(LPSTR)lpbi,dwDIBSize,&

//写入位图文件其余内容

CloseHandle(hFile);

initDrawSreen()//初始化屏幕

{m_width=m_pBIH->

biWidth;

m_height=m_pBIH->

biHeight;

scrylm=m_height-cheight;

if(scrylm<

scrylm=0;

scrxlm=m_width-cwidth;

if(scrxlm<

scrxlm=0;

AfxMessageBox(_T("

initDrawSreen"

));

m_vbar.SetScrollRange(0,scrylm,FALSE);

//0制定最小滚动的位置scrylm制定最大滚动的位置TRUE

m_vbar.SetScrollPos(scry,TRUE);

m_hbar.SetScrollRange(0,scrxlm,TRUE);

m_hbar.SetScrollPos(scrx,TRUE);

capflag=1;

drawSreen();

OnVScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar)

intnPos1=m_vbar.GetScrollPos();

if(nSBCode==SB_LINEDOWN)

{scry=scry+10;

if(scry>

scrylm)

scry=scrylm;

nPos1=scry;

drawSreen();

if(nSBCode==SB_LINEUP)

{scry=scry-10;

if(scry<

scry=0;

if(nSBCode==SB_THUMBTRACK)

{scry=nPos;

nPos1=nPos;

if(nPo

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2