Desktop Viewer status

I currently have a working, stable VNC-like remote viewing desktop application at https://github.com/smasherprog/RemoteDesktop/. In all of my tests, it outperforms VNC on network traffic by 2-4X, and performance is the same.

All of the functionality is there, copy/paste between client and server; drag and drop file transfer. If you install the server as a service, which you can do by running the server exe with the -install command, it will allow you to view the Login Screen, Windows Locked Screen, Switch Users screen and the server will persist across reboots.

Next on the list

  • Support for more than 1 monitor
  • add option for server to remove itself upon command from viewer (this is most helpful when you want to connect to assist someone, then completely remove the application) — the code is done, I just need to tie it in.
  • Create a Proxy Server which will allow the server and client to be behind a NAT device and still connect to each other. It acts as a bridge between internal networks.

code postings

I have stopped work on my c# VNC like application. You can view the code on Github at https://github.com/smasherprog/Desktop_Sharing  The application is stable, but has lag spikes that occur at random times. I suspect that the problem is the garbage collector, but I dont want to go into tracking this problem down because this would be going against the language. Others might say that it is natural to have to optimize code, but the type of optimization necessary is like helping a blind man see.

So, i decided to re-write it in c++! You can check it out at https://github.com/smasherprog/RemoteDesktop The code is stable and will capture UAC, Logon log off, and regular windows operations. It is better than vnc in all of my performance/networking testing by wide margins. Additionally, it is about 10X faster than the C# equivalent code and does not have fluctuations in its running as my c# application did.

The only issue is when switching users, this causes the program to get “confused.” Once the user logs back into the desktop everything resets.  This was designed for Vista and forward.. It might work on XP, but I havent tried and dont plan on supporting an old OS.

Encryption is in place, but I have to hook it in. Within the next few days I guess. . . .

GitHub Code

I just added a new project to github; its a desktop sharing program — like VNC. So far everything is progressing nicely! There are two main projects: the viewer and the server.

To get started:

Open the project DesktopSharing_Viewer, make sure the project DesktopSharing_Viewer is set to the project starup. Then, build it. There is a text box for the IP address of the machine the server is running on to connect to.

Open the project DesktopSharing_Server, make sure the project DesktopSharingService is set to the project starup. Then, build it. There is a project called DesktopSharing_Server, which is where all of the code is, but the server is designed to be a service to run in the background so the project is set up in this way.

Run the Server on a different computer, then run the viewer on your computer and connect up.

 

backup program

I just released the start of a backup program which query’s an NTFS journal for changes. The ntfs journal is very fast for determining changes, searches and creating a file structure of the drive. With the Master File Table, an entire file count, folder count along with a complete mapping of the drive structure can be completed in less than a second.

This is the first release, and its not set up to actually do backups yet. Current, I build the file structure of a drive from the Master File Table. Next, I will query the journal to get changes which will allow me to build a list of files that need to be backed up.

Its written in C#, check it out   https://github.com/smasherprog/Backup

 

vnc proxy with websocket support

I just released a very early version of the websocket support for the VNC proxy server. It is very very unoptimized and a bit messy, but it works!. I am releasing this as a proof of concept and will clean up the code within the next few days. Check it out at https://github.com/smasherprog/VNC_Proxy

 

vnc proxy

Adding support for web sockets so the proxy can be used for regular vnc clients and web based novnc clients. Expect this within the week. . .

More code

I have released more code on github https://github.com/smasherprog

Block_SizeReporter: This will scan the directory get the file sizes and report back the best block size that should be used for the given files. When formatting a drive, sometimes you want to know what the best blocksize is to use given a certain filestructure. This is a short tool for that.

VNC_Proxy: While playing with UltraVNC, i found their repeater (aka, proxy) code to be …. not very neat. So, I wrote their repeater in c#.

Code

It has been a while since my last post as I have been working to finish up my masters degree in computer science. As of the 16 of May, I completed my degree and will now spend time actually coding for non-school projects.

I started posting code on Git Hub https://github.com/smasherprog/sl_engine

Feel Free to Jump in. My goal is to have fun creating an OpenGL 3D based Graphical Library.

Working!

I haven’t had any time to do any programming because of school and work. I want to get back to creating libraries, and updating them; however, I simply dont have the time for it. Perhaps at the end of July, I can get back to writing code. Until that time, dont expect any new code or updates.

video

In case anyone has not seen the two videos by Herb Sutter, “atomic Weapons: The C++ Memory Model and Modern Hardware,” go watch it now. It is a fantastic video that covers what atomics mean, how they are used, and where technology is supporting them. The information in this video will change your life guaranteed –or your money back!