Guest User

Untitled

a guest
Feb 23rd, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. type
  2. TPacket = record
  3. Image: TJPEGImage;
  4. student: string;
  5. end;
  6.  
  7. var
  8. Image: TBitmap;
  9. Desktop: TDesktop;
  10. by: TBytes;
  11. Packet: TPacket;
  12.  
  13. implementation
  14.  
  15. {$R *.dfm}
  16.  
  17. procedure TDesktop.Button1Click(Sender: TObject);
  18. var
  19. can: TCanvas;
  20. begin
  21. can := TCanvas.Create;
  22. can.Handle := GetWindowDC(GetDesktopWindow);
  23. ZeroMemory(by, 0);
  24. Packet.Image := TJPEGImage.Create;
  25. Image := TBitmap.Create;
  26. Image.Width := Screen.Width;
  27. Image.Height := Screen.Height;
  28. Image.Canvas.CopyRect(
  29. Rect(0, 0, Screen.Width, Screen.Height),
  30. can,
  31. Rect(0, 0, Screen.Width, Screen.Height)
  32. );
  33. Packet.Image.Assign(Image);
  34. Packet.Image.CompressionQuality := 50;
  35. Packet.student := 'student';
  36. IdUDPClient1.BufferSize := SizeOf(packet);
  37. SetLength(by, sizeof(packet));
  38. Move(packet, by[0], sizeof(packet));
  39. IdUDPClient1.SendBuffer('127.0.0.1', 5, by);
  40. Image.Free;
  41. Packet.Image.Free;
  42. ReleaseDC(0, can.Handle);
  43. end;
  44.  
  45. procedure TDesktop.FormShow(Sender: TObject);
  46. begin
  47. IdUDPServer1.BufferSize:=SizeOf(packet);
  48. end;
  49.  
  50. procedure TDesktop.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  51. AData: array of Byte; ABinding: TIdSocketHandle);
  52. begin
  53. Packet.Image := TJPEGImage.Create;
  54. Move(AData[0], packet, sizeof(AData));
  55. Caption := Packet.student;
  56. Packet.Image.SaveToFile('E:1.jpg');
  57. Packet.Image.Free;
  58. end;
Advertisement
Add Comment
Please, Sign In to add comment