Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Explain the VNC RFB protocol in detail so as to enable replication with VB6 and API calls.

Posted on 2003-11-01
7
Medium Priority
?
855 Views
Last Modified: 2008-01-09
I am looking to create an opensource VB example of VNC, and I need to understand (in detail) how the remote frame buffering protocol of VNC is accomplished enough to replicate it using VB6 and API calls.

Can you help?
0
Comment
Question by:JimHubbard
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 5

Expert Comment

by:phyderous
ID: 9665531
VNC is an open source ....

just d/l the code everything is in there
0
 

Author Comment

by:JimHubbard
ID: 9665534
If I knew C/C++ enough to understand the code, I wouldn't be recoding it in VB.
0
 
LVL 5

Expert Comment

by:phyderous
ID: 9665677
I am not sure pure vb is strong enough to handle this

you might want to try writting it in DirectX with vb and maybe using .net with directx 9 which will give you better support.

there are to main ideas in the field of remote control the one

like vnc

build on capturing the current frame and from this point only pass the delta

somthing like mpeg

think of the starting position as a key from now on
your server send only the delta between the current frame and the key.

you can use directx to compare and send only the dela.

and so on.

if the change is above some precentage then you send the all screen again.

you may also want to send some circle arround the current position of the mouse all the time.

the second option

is much more diffecult to program it. and will work only in windows.

you can use the windows api to query each window and map the sceen by rebuilt the programs in the client.

in this option you will not recive backgroud images and so on, but it will work much faster

for example insted of sending the bit map of a window you can send for example "createwindow top:100;left:100;width=500;height=500" then create toolbar create menu and so on ...

as I said it is very comlicate(this is how microsoft terminal server is working) but will give you much better results ...

good luck,

0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:JimHubbard
ID: 9667006
I know the different theories on how to do remote controlling.  I am not looking for theories - they are of no use to me.

And, although you can query each window with Windows API calls, a MUCH quicker and easier way to accomplish this is to hook the system and intercept each WM_PAINT message to see what is being redrawn in every window, without the need to query each one individually.

I need the remote frame buffer protocol explained in detail, as I asked in the original question.  

I think, since VNC is out, that nobody has ever really questioned *how* VNC works.  Therefore, it will not improve as it should.

Does anybody really understand VNC's remote frame buffer protocol?

I'd hate like hell to have to learn an archaic language like C just to figure this thing out.

Jim
0
 
LVL 5

Accepted Solution

by:
phyderous earned 2000 total points
ID: 9667072
the rfb protocol is described in

http://www.realvnc.com/docs/rfbproto.pdf

it is quite well documented

0
 

Author Comment

by:JimHubbard
ID: 9667077
Most excellent phyderous!  I looked my little ass off and could not find this documentation.

Thanks so much for your help!

Jim
0
 
LVL 5

Expert Comment

by:phyderous
ID: 9667101
cheers
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Suggested Courses

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question