当前位置:编程学习 > C#/ASP.NET >>

能不能帮我修改一下这个C#程序…很简单的……

这个是VS2008 WINDOWS文件,是一个流量监控程序,左边显示是当前所有网关的列表,点击之后可以在右边出现他的流量下载或上传情况,现在我不想要列表,只想她显示一个端口就好,端口名字是:Intel(R) WiFi 链接 5100 AGN,Interface Number是1,希望大虾们帮忙修改下…就是修改一个例子…急的快哭了……改简单点……谢谢…有3段代码…FormMain.cs的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MonitoringNetworkSpeed
{
    public partial class FormMain : Form
    {    
        private NetworkAdapter[] adapters;
        private NetworkMonitor monitor;

        public FormMain()
        {
            InitializeComponent();
        }
      
        private void FormMain_Load(object sender, System.EventArgs e)
        {
            monitor = new NetworkMonitor();
            this.adapters = monitor.Adapters;

            if (adapters.Length == 0)
            {
                this.ListAdapters.Enabled = false;
                MessageBox.Show("在计算机上没有找到网络适配器");
                return;
            }

            this.ListAdapters.Items.AddRange(this.adapters);
        }

        private void ListAdapters_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            monitor.StopMonitoring();
            monitor.StartMonitoring(adapters[this.ListAdapters.SelectedIndex]);
            this.TimerCounter.Start();
        }

        private void TimerCounter_Tick(object sender, System.EventArgs e)
        {
            NetworkAdapter adapter = this.adapters[this.ListAdapters.SelectedIndex];
            this.LableDownloadValue.Text = String.Format("{0:n} Bytes", adapter.DownloadSpeedBytes);
            this.LabelUploadValue.Text = String.Format("{0:n} Bytes", adapter.UploadSpeedBytes);
        }

        private void LabelDownload_Click(object sender, EventArgs e)
        {

        }
    }
}
NetworkAdapter.cs的
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace MonitoringNetworkSpeed
{
    
/// <summary>
/// Represents a network adapter installed on the machine.
/// Properties of this class can be used to obtain current network speed.
/// </summary>
public class NetworkAdapter
{
/// <summary>
/// Instances of this class are supposed to be created only in an NetworkMonitor.
/// </summary>
internal NetworkAdapter(string name)
{
this.name = name;
}

private long dlSpeed, ulSpeed; // Download\Upload speed in bytes per second.
private long dlValue, ulValue; // Download\Upload counter value in bytes.
private long dlValueOld, ulValueOld; // Download\Upload counter value one second earlier, in bytes.

internal string name; // The name of the adapter.
internal PerformanceCounter dlCounter, ulCounter; // Performance counters to monitor download and upload speed.

/// <summary>
/// Preparations for monitoring.
/// </summary>
internal void init()
{
// Since dlValueOld and ulValueOld are used in method refresh() to calculate network speed, they must have be initialized.
this.dlValueOld = this.dlCounter.NextSample().RawValue;
this.ulValueOld = this.ulCounter.NextSample().RawValue;
}

/// <summary>
/// Obtain new sample from performance counters, and refresh the values saved in dlSpeed, ulSpeed, etc.
/// This method is supposed to be called only in NetworkMonitor, one time every second.
/// </summary>
internal void refresh()
{
this.dlValue = this.dlCounter.NextSample().RawValue;
this.ulValue = this.ulCounter.NextSample().RawValue;

// Calculates download and upload speed.
this.dlSpeed = this.dlValue - this.dlValueOld;
this.ulSpeed = this.ulValue - this.ulValueOld;

this.dlValueOld = this.dlValue;
this.ulValueOld = this.ulValue;
}

/// <summary>
/// Overrides method to return the name of the adapter.
/// </summary>
/// <returns>The name of the adapter.</returns>
public override string ToString()
{
return this.name;
}

/// <summary>
/// The name of the network adapter.
/// </summary>
public string Name
{
get
{
return this.name;
}
}
/// <summary>
/// Current download speed in bytes per second.
/// </summary>
public long DownloadSpeed
{
get
{
return this.dlSpeed;
}
}
/// <summary>
/// Current upload speed in bytes per second.
/// </summary>
public long UploadSpeed
{
get
{
return this.ulSpeed;
}
}
/// <summary>
/// Current download speed in kbytes per second.
/// </summary>
public double DownloadSpeedBytes
{
get
{
return this.dlSpeed;
}
}
/// <summary>
/// Current upload speed in kbytes per second.
/// </summary>
public double UploadSpeedBytes
{
get
{
return this.ulSpeed;
}
}
}
}
NetworkMonitor.cs的
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Timers;
using System.Net.NetworkInformation;
namespace MonitoringNetworkSpeed
{
    /// <summary>
    /// The NetworkMonitor class monitors network speed for each network adapter on the computer,
    /// using classes for Performance counter in .NET library.
    /// </summary>
    public class NetworkMonitor
    {
        private Timer timer; // The timer event executes every second to refresh the values in adapters.
        private ArrayList adapters; // The list of adapters on the computer.
        private ArrayList monitoredAdapters; // The list of currently monitored adapters.

        public NetworkMonitor()
        {
            this.adapters = new ArrayList();
            this.monitoredAdapters = new ArrayList();
            EnumerateNetworkAdapters();

            timer = new Timer(1000);
            timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
        }

        /// <summary>
        /// Enumerates network adapters installed on the computer.
        /// </summary>
        private void EnumerateNetworkAdapters()
        {
            PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface");

            foreach (string name in category.GetInstanceNames())
            {
                // This one exists on every computer.
                if (name == "MS TCP Loopback interface")
                    continue;
                // Create an instance of NetworkAdapter class, and create performance counters for it.
                NetworkAdapter adapter = new NetworkAdapter(name);
                adapter.dlCounter = new PerformanceCounter("Network Interface", "Bytes Received/sec", name);
                adapter.ulCounter = new PerformanceCounter("Network Interface", "Bytes Sent/sec", name);
                this.adapters.Add(adapter); // Add it to ArrayList adapter
            }
        }

        private void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            foreach (NetworkAdapter adapter in this.monitoredAdapters)
                adapter.refresh();
        }

        /// <summary>
        /// Get instances of NetworkAdapter for installed adapters on this computer.
        /// </summary>
        public NetworkAdapter[] Adapters
        {
            get
            {
                return (NetworkAdapter[])this.adapters.ToArray(typeof(NetworkAdapter));
            }
        }

        // Enable the timer and add all adapters to the monitoredAdapters list, unless the adapters list is empty.
        public void StartMonitoring()
        {
            if (this.adapters.Count > 0)
            {
                foreach (NetworkAdapter adapter in this.adapters)
                    if (!this.monitoredAdapters.Contains(adapter))
                    {
                        this.monitoredAdapters.Add(adapter);
                        adapter.init();
                    }

                timer.Enabled = true;
            }
        }

        // Enable the timer, and add the specified adapter to the monitoredAdapters list
        public void StartMonitoring(NetworkAdapter adapter)
        {
            if (!this.monitoredAdapters.Contains(adapter))
            {
                this.monitoredAdapters.Add(adapter);
                adapter.init();
            }
            timer.Enabled = true;
        }

        // Disable the timer, and clear the monitoredAdapters list.
        public void StopMonitoring()
        {
            this.monitoredAdapters.Clear();
            timer.Enabled = false;
        }

        // Remove the specified adapter from the monitoredAdapters list, and disable the timer if the monitoredAdapters list is empty.
        public void StopMonitoring(NetworkAdapter adapter)
        {
            if (this.monitoredAdapters.Contains(adapter))
                this.monitoredAdapters.Remove(adapter);
            if (this.monitoredAdapters.Count == 0)
                timer.Enabled = false;
        }
    }
}
麻烦大家了
--------------------编程问答-------------------- 不会改,帮你顶顶。 --------------------编程问答-------------------- 貌似有点多,帮你顶下。 --------------------编程问答-------------------- 帮你顶 --------------------编程问答-------------------- 在上课,回来看 --------------------编程问答-------------------- 帮顶帮顶 --------------------编程问答-------------------- --------------------编程问答-------------------- adapters 里面保存的是网络适配器的列表

你可以直接把你所希望的网卡适配器的值传给它

其他的值就不要传了,清除掉

界面上把列表的控件直接屏蔽掉就可以了,做个按钮,直接用于显示你需要显示的那个网卡 --------------------编程问答-------------------- up  up  up --------------------编程问答-------------------- 代码好长 --------------------编程问答-------------------- up up up up up --------------------编程问答-------------------- mark --------------------编程问答-------------------- 看看这个例子,是否对你有参考价值?
http://www.codeproject.com/KB/IP/MyDownloader.aspx
效果图:
--------------------编程问答-------------------- 你看看这样是不是你要的?
 public partial class FormMain : Form
    {
        private NetworkAdapter[] adapters;
        private NetworkMonitor monitor;

        public FormMain()
        {
            InitializeComponent();
        }
        private void FormMain_Load(object sender, System.EventArgs e)
        {
            monitor = new NetworkMonitor();
            this.adapters = monitor.Adapters;

            if (adapters.Length == 0)
            {
                this.ListAdapters.Enabled = false;
                MessageBox.Show("在计算机上没有找到网络适配器");
                return;
            }

            this.ListAdapters.Items.AddRange(this.adapters);
            
            monitor.StopMonitoring();
            monitor.StartMonitoring(adapters[0]);
            TimerCounter.Interval = 3000;
            this.TimerCounter.Start();
            ListAdapters.Visible = false;

        }

        private void ListAdapters_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            monitor.StopMonitoring();
            monitor.StartMonitoring(adapters[this.ListAdapters.SelectedIndex]);
            this.TimerCounter.Start();
        }

        private void TimerCounter_Tick(object sender, System.EventArgs e)
        {
            NetworkAdapter adapter = this.adapters[0];
            this.LableDownloadValue.Text = String.Format("{0:n} Bytes", adapter.DownloadSpeedBytes);
            this.LabelUploadValue.Text = String.Format("{0:n} Bytes", adapter.UploadSpeedBytes);
        }

        private void LabelDownload_Click(object sender, EventArgs e)
        {

        }
    } --------------------编程问答-------------------- 有点乱~~ --------------------编程问答-------------------- 这么复杂!真的要好好学习了! --------------------编程问答--------------------
引用 12 楼 computerfox 的回复:
看看这个例子,是否对你有参考价值?
http://www.codeproject.com/KB/IP/MyDownloader.aspx
效果图:
 这个很强大。 --------------------编程问答-------------------- 好长,不懂帮顶,坐等高手
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,