2011-03-05 12 views
0

私はプログラミングについてもっと学びたいC#newbyです。だから、私は単純なツールを使い始めました。選択したネットワークアダプタのアドレスを静的または動的に設定することができます(Windows TCP/IPのプロパティと同様です。 静的IPアドレスをネットワークアダプタに設定すると、正常に動作します。 しかし、コンピュータを切断してネットワークを構成し、ネットワークアダプタのIPを動的(IPアドレスを自動的に取得する)に設定すると、Windows IPプロパティが動的に設定されません。 ネットワークに接続しているとき(ルータまたはDHCPサーバが有効な場合)、私はIPアドレスを自動的に取得することを理解しています。 しかし、ネットワークからコンピュータの接続を解除すると、私はそれがうまく機能し、WindowsのTCP/IPのプロパティで、ダイナミックにIPのプロパティを設定します。私のコードでworngは何?C#ツールでIPを設定する

おかげで多くのことをあなたの助け!

私はコードの下使用:

public void setDHCPMode() 
    { 
     ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
     ManagementObjectCollection moc = mc.GetInstances(); 

     foreach (ManagementObject mo in moc) 
     { 
      if (!(bool)mo["ipEnabled"]) 
       continue; 

      try 
      { 
       string desc = (string)(mo["Description"]); 

       if (desc == NICcomboBox.Text) 
       { 
        ManagementBaseObject newDNS = mo.GetMethodParameters("SetDNSServerSearchOrder"); 
        newDNS["DNSServerSearchOrder"] = null; 
        ManagementBaseObject enableDHCP = mo.InvokeMethod("EnableDHCP", null, null); 
        ManagementBaseObject setDNS = mo.InvokeMethod("SetDNSServerSearchOrder", newDNS, null); 
       } 

       toolStripStatusLabel1.Text = "DHCP set"; 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("Unable to set DHCP : " + ex.Message); 
      } 
     } 
    } 
+6

プログラミングについて詳しく知りたい場合は、プログラミングに関することを教えて、Windows管理クラスについては教えてください。 –

答えて

0

問題が見つかりました。 WMIのdosn'tが正しく動作するように見えます。特定のNICのケーブルが抜かれている間は、TCP/IPプロパティをDHCPに設定することは不可能です。

私はそれをregestryでDHCPモードに設定して解決しました。今は完璧に動作します。

関連する問題