If you really spent (should I say "wasted"?) whole two years for such things (did I get you correctly? or may be you also did something else, something useful? :-)), I would think about some career change. :-)
On CodeProject, you can find at least two decent projects, apparently built "by definition" (based on available description of , without any 3rd-party "DLLs"); and I am almost sure it took much less time:
Palantir - Remote Desktop Manager[
^],
Remote Desktop using C#.NET[
^].
By the way, first of the projects, Palantir, once helped me to solve the problem with the presentation using the presentation computer with non-matching monitor aspect ratio in case when Microsoft's product failed to do the job. Please see my post in comments:
Palantir - Remote Desktop Manager[
^].
Look how creative people can work, instead of getting "sick of getting nowhere with it" :-)
Now, if your major feature is just taking some screenshots from the number of computer, maybe you need to create something simple and specialized, not following the RDP protocol. Here is how: instead of remote access services, you could create a specialized network service. The adequate form of such service would be the Windows Service. It can be installed on each of the remote computers and can get access to local systems, in particular, takes screenshots on request. Your central computer collecting screenshot should act as a client, connect to some or all of those remote computers, send them requests and receive responses. For network transport, you can use anything from raw sockets (better using
TcpListener/TcpClient
) to "classical" remoting to WCF. Please see my overview of these approaches in my past solutions:
how i can send byte[] to other pc[
^],
Communication b/w two Windows applications on LAN.[
^].
And you can learn about development of Windows Services:
http://en.wikipedia.org/wiki/Windows_service[
^],
http://msdn.microsoft.com/en-us/library/y817hyb6%28v=vs.110%29.aspx[
^].
That's it. Such specialized approach will be the order of magnitude easier that that of RDP (however, with RDP you would not need to develop a server part :-)). I would estimate required time to achieve basic functionality (it depends on the detail of your requirements though) in few days.
Good luck,
—SA