2011-11-08 4 views
3

J'essaye de coder une application Bureau à distance en utilisant C# .NET.Connexion Bureau à distance avec MSTSCLib

J'ai suivi quelques exemples (voir la liste ci-dessous) et a créé un formulaire Windows, ajouté des références à MSTSLib, a ajouté service Microsoft Terminal contrôle au formulaire et le code le comportement suivant:

namespace RDConnector 
{ 
    public partial class Form1 : Form 
    {  
     const string server = "55.55.55.555"; 
     const string userNameBase = "username"; 
     const string passwordBase = "password"; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       rdClient.Server = server; 
       rdClient.UserName = userNameBase;  

       /*IMsTscNonScriptable secured = (IMsTscNonScriptable)rdClient.GetOcx(); 
       secured.ClearTextPassword = passwordBase;*/ 

       rdClient.AdvancedSettings8.DisplayConnectionBar = true; 
       rdClient.AdvancedSettings8.ClearTextPassword = passwordBase; 
       rdClient.AdvancedSettings8.EncryptionEnabled = -1;     

       //// Start connection 
       rdClient.Connect(); 
       MessageBox.Show("Connection Status + " + rdClient.Connected.ToString()); 

      } 
      catch (Exception Ex) 
      { 
       MessageBox.Show("Exception ocurred: " + Ex.Message); 
      } 
     } 
    } 
} 

Cependant, il est fonctionnant, le statut de connexion après avoir appelé rdClient.Connect() est 2 (0 avant de l'appeler), mais rien ne se passe. J'ai également couru l'exemple 1 et cela ne fonctionne pas. J'utilise Windows 7 - 64 bits et Visual Studio C# Express. Visual Express Edition n'a pas un compilateur X64, pourrait être le problème lié à cela?

J'apprécierai vraiment votre aide.

Exemples:

  1. http://www.codeproject.com/KB/cs/RemoteDesktop_CSharpNET.aspx

  2. Running COM component controls on multiple threads

+0

Si cela aide, je cours le même programme sur windows7-x64 mais compile pour x86 à partir de VisualStudio et cela fonctionne. Lorsqu'il est connecté, alors rdClient.Connect est 1, 0 lorsqu'il est déconnecté – Klaus78

+0

Votre code est parfaitement bien. Le problème peut être dans le nom du serveur. vous pouvez essayer en utilisant {{MachineName.DomainName}} au lieu de l'adresse IP. –

+0

a-t-il déjà été répondu? Je suis dans le même bateau maintenant –

Répondre

1

Je trouve le problème enfin. Lorsque vous voulez choisir des composants COM, sélectionnez simplement "Microsoft RDP Client Control - version x". Je choisis la version 8 qui fonctionne parfaitement pour moi.

Questions connexes