2009-07-02 79 views

回答

0

測試遠程桌面是否可用的一種方法可能是打開套接字到默認RD端口(3389)。如果可以建立連接,則假定RD可用並丟棄套接字。如果連接被拒絕,RD很可能不可用。

另一種方法是通過WMI訪問有關RD的信息。但是,這需要客戶端計算機在(可能的)服務器上擁有足夠的用戶權限。靈感這種方法可以在這裏找到:

http://www.vedivi.com/support/blog/71-how-to-enable-remote-desktop-programmatically.html

2

我想通了這樣

 private bool TestPort(string ipString,int port) 
     { 
      IPAddress ip = IPAddress.Parse(ipString); 
      bool test = false; 
      try 
      { 
       System.Net.Sockets.Socket s = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
       s.Connect(ip, port); 
       if (s.Connected == true) 
        test = true; 
       s.Close(); 
      } 
      catch (SocketException ex) 
      { 
        test = false; 
      } 
      return test; 
     } 

如果函數是在C++中,它會更快?快多少?有什麼建議麼?