2009-07-02 82 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++中,它会更快?快多少?有什么建议么?