2011-11-08 176 views
3

我正在嘗試使用C#.NET編寫遠程桌面應用程序。與MSTSCLib的遠程桌面連接

我跟着一些例子(如下所示),並創建一個Windows窗體,添加引用MSTSLib,加入Microsoft終端服務控制的形式和代碼以下行爲:

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); 
      } 
     } 
    } 
} 

但是,它不是工作時,調用rdClient.Connect()後的連接狀態爲2(調用之前爲0),但沒有任何反應。我也運行了示例1,它不起作用。

我使用Windows 7 - 64位和Visual Studio C#Express。 Visual Express Edition沒有X64編譯器,可能是與此相關的問題?

我真的很感謝你的幫助。

例子:

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

  2. Running COM component controls on multiple threads

+0

如果這有幫助,我在windows7-x64上運行相同的程序,但是從VisualStudio爲x86編譯並且工作。 當連接時,然後rdClient.Connect是1,0斷開連接 – Klaus78

+0

你的代碼是完全正確的。這個問題可能在服務器名稱。您可以嘗試使用{{MachineName.DomainName}}而不是IP地址。 – 2014-06-16 11:19:13

+0

是否曾回答過?我現在在同一條船上 –

回答

1

我發現這個問題在最後。當你想選擇COM組件時,只需選擇「Microsoft RDP Client Control - 版本x」。我選擇了適合我的完美版本。