views:

24

answers:

1

I would like to figure out how to create a C# Remote Desktop client and the documentation on the internet varies from sparse to non-existent. Or if you have this information, please let me know. I will compile as much info as possible and post it up somewhere

I'd like to learn the following information:

  1. How do I connect programatically to a remote desktop server? What client class should I use? There are like 20 of them.
  2. I sort of know that you can set Server and Username directly. How do I set the password securely?
  3. Why doesn't the following code work?

    MsRdpClient7 rdc = new MSTSCLib.MsRdpClient7();
    rdc.Server = "fake.bogus.com";
    rdc.UserName = "JChen";
    rdc.AdvancedSettings2.ClearTextPassword = "insecure";
    rdc.Connect();
    
  4. What is the full API for the RDP client? What kinds of information can I get from it?

If you've been working with RDP in C#, please help. You'll be providing a huge service to all the people who need to learn this API and more importantly, to me :-)

Thanks again!
Jieren

EDIT: To clarify a bit, I'm trying to create a console RDP client that can both send data to and receive data from the RDP server. I've already done a Forms RDP client using the AxMsTscAxNotSafeForScripting type.

+1  A: 

MSDN has documentation for the Remote Desktop ActiveX Control Interface

(What a long and descriptive name :) )

Onkelborg
Thanks for the quick response! I did check out this documentation, but it only has information on the remote desktop protocol interfaces. I'd like to learn more about the a teal implementation classes and which ones I should use. Thanks again for your help though!
Jieren
@Jieren: I don't know what kind of documentation you want, but that's what I've used previously. The version number one the interfaces are for providing backward compability, the higher, the newer (and supports more stuff.) It's MsRdpClient7 you should use. #3: What doesn't work? What's happening? What do you expect to happen?
Onkelborg
@Onkelborg: for #3 I test whether or not I'm connected with Console.WriteLine(rdc.Connected); and then I rdc.Disconnect(); I get a 0 for rdc.Connected and rdc.Disconnect() throws an exception since I'm not connected in the first place.
Jieren
Hm, I don't think that Connect is a blocking call. You should subscribe to the events to know when you are connected/something errors out
Onkelborg