回 帖 发 新 帖 刷新版面

主题:网络编程高手请进

各位大哥,小弟头次编socket的程序,现在遇到一点问题,麻烦各位解决一下,我做的是一个类似远程
控制的程序,在程序开始的时候让clientsocket和serversocket相连,clientsocket向serversocket发送
一个指令,激活seversocket端的timer,让seversocket端开始获得屏幕图案并且发送过来。
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(flag==1)
{
Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
HDC hdc;
TJPEGImage *jp = new TJPEGImage();
HWND hwnd=GetDesktopWindow();
TMemoryStream* stream = new TMemoryStream();
hdc=GetWindowDC(hwnd);
Bitmap1->Width=GetSystemMetrics(SM_CXSCREEN);
Bitmap1->Height=GetSystemMetrics(SM_CYSCREEN);
BitBlt(Bitmap1->Canvas->Handle,0,0,Bitmap1->Width,Bitmap1->Height,hdc,0,0,SRCCOPY);
jp->Assign(Bitmap1);
stream->Position = 0;
jp->SaveToStream(stream);
NMStrm1->Host=ServerSocket1->Socket->RemoteHost;
NMStrm1->PostIt(stream);
ReleaseDC(hwnd,hdc);
delete Bitmap1;
delete stream;
delete jp;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMStrm1Connect(TObject *Sender)
{
flag=1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMStrm1Disconnect(TObject *Sender)
{
flag=0;
}
clientsocket端的屏幕接收程序是这样的
void __fastcall TForm1::NMStrmServ1MSG(TComponent *Sender,
      const AnsiString sFrom, TStream *strm)
{
TJPEGImage *jp = new TJPEGImage();
strm->Position = 0;
jp->LoadFromStream(strm);
Image1->Picture->Assign(jp);
delete jp;        
}
还有一个是发送关机指令的,serversocket端单独运行的时候关机没有问题,可是接受clientsocket发送的指令后不能关机
不知道有没有人有这样的经验,如果有需要的话,我可以把程序发给你们。
如果有这样的实例可不可以发给我,chenzhou851025@163.com
我先谢谢大家了,

回复列表 (共4个回复)

沙发

下去我又修改了下程序,现在发送关机指令只能把server端的server.exe关了,可是还是关不了机.会的兄弟帮忙顶下啊

板凳

为什么没人帮我看看呢,难道大家都不会吗

3 楼

关闭计算机是用什么函数?

4 楼

3楼的是要关机的代码吗

我来回复

您尚未登录,请登录后再回复。点此登录或注册