원격제어를 만드는것이 정말 쉽지만은 않습니다.
마우스와 키보드 이벤트를 전송하는것은 쉽지만.. 진짜로 애매한것은
화면 전송입니다..
아시겠지만.. Full Screen을 전송하는것은 물론 아니구요.. 처음에
버퍼링된 Screen에서 틀려진 부분의 좌표에 해당하는 이미지만 보내야
하는데, 우선 정확하게 틀린부분을 찾아내는 것이 쉽지가 않습니다.
그러니까, GetUpdateRec 하나로는 찾을수가 없습니다. 윈도우 메뉴를
조작할때의 메세지와 스크롤할때의 윈도우 메세지등...이 모두 틀립니다
윈도우에서 일어날수 있는 화면의 변화가 생길때마다 일어나는 모든
이벤트를 잡아야 하고 처리를 해주어야 하거든요..
이것은 VNC open 소스를 보시면, 아실 수 있습니다.
그리고, 변화 영역을 얻은후에도 일반적인 jpeg 압축으로 영상을 보낸다면
pc애니웨어 처럼 속도가 않나옵니다.. 그래서 vnc 에서는 헥사타일 압축
방식을 쓰더군요...
마우스와 키보드 이벤트를 전송하는것은 쉽지만.. 진짜로 애매한것은
화면 전송입니다..
아시겠지만.. Full Screen을 전송하는것은 물론 아니구요.. 처음에
버퍼링된 Screen에서 틀려진 부분의 좌표에 해당하는 이미지만 보내야
하는데, 우선 정확하게 틀린부분을 찾아내는 것이 쉽지가 않습니다.
그러니까, GetUpdateRec 하나로는 찾을수가 없습니다. 윈도우 메뉴를
조작할때의 메세지와 스크롤할때의 윈도우 메세지등...이 모두 틀립니다
윈도우에서 일어날수 있는 화면의 변화가 생길때마다 일어나는 모든
이벤트를 잡아야 하고 처리를 해주어야 하거든요..
이것은 VNC open 소스를 보시면, 아실 수 있습니다.
그리고, 변화 영역을 얻은후에도 일반적인 jpeg 압축으로 영상을 보낸다면
pc애니웨어 처럼 속도가 않나옵니다.. 그래서 vnc 에서는 헥사타일 압축
방식을 쓰더군요...
하여튼... 실제로 구현하시려면,, vnc 소스를 꼭 분석해 보시기 바랍니다.