- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C用API写的远程桌面程序
C++用API写的远程桌面程序
////////////////Server/////////////////
#includewindows.h
#pragma comment(lib,WS2_32.lib)
#define WM_SOCKET WM_USER+1
//
#define MAXSIZE 10240
////////
SOCKET sockS,sockC;
sockaddr_in addrS,addrC;
HWND hWnd; //全局窗口句柄
//
int SysWidth = GetSystemMetrics(SM_CXSCREEN);
int SysHeight = GetSystemMetrics(SM_CYSCREEN);
//
struct Packge
{
DWORD Len;
int Type;
char Buf[MAXSIZE];
} pack,packRecv;
//
HANDLE hm_Dib;
HBITMAP hm_Bit;
////////
////////
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//消息处理函数的声明
void SockProc(WPARAM wParam, LPARAM lParam);
void cleanbuffer(char buffer[],int size);
void StartSock();
HBITMAP CapSreen();
HANDLE DDB2DIB();
void SentSreen();
////////
////////
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
MSG Msg;
WNDCLASS deskCls;
char ClassName[]=deskCls;
char Title[]=Desk_Server;
//
deskCls.style =0;
deskCls.cbClsExtra =0;
deskCls.cbWndExtra =0;
deskCls.hCursor=LoadCursor(NULL,IDC_ARROW);
deskCls.hIcon =LoadIcon(NULL,IDI_APPLICATION);
deskCls.hInstance =hInstance;
deskCls.lpfnWndProc =WndProc;
deskCls.lpszClassName =ClassName;
deskCls.lpszMenuName =NULL;
deskCls.hbrBackground =(HBRUSH)GetStockObject(BLACK_BRUSH);
//
if(!RegisterClass(deskCls)){return FALSE;}
hWnd=CreateWindow(ClassName,Title,WS_MINIMIZEBOX|WS_SYSMENU,250,40,400,300,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd,nShowCmd);
UpdateWindow(hWnd);
while(GetMessage(Msg,NULL,0,0))
{ TranslateMessage(Msg);
DispatchMessage(Msg);
}
return Msg.wParam ;
}
//消息处理函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{ switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
case WM_CREATE:
StartSock();
::WSAAsyncSelect(sockS,hWnd,WM_SOCKET,FD_ACCEPT|FD_READ|FD_CLOSE);
break;
case WM_SOCKET:
SockProc(wParam,lParam);
break;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
}
return 0;
}
//响应Socket事件消息函数
void SockProc(WPARAM wParam, LPARAM lParam)
{
int lenC=
文档评论(0)