例如,修改网卡的IP地址等参数。应该用到什么控件?
请各位大虾指教!

解决方案 »

  1.   

    好象没有什么现存的控件,用API吧!!
      

  2.   

    转贴:网卡真正的MAC地址是在EPROM中的,可以通过专门的程序修改,不少网卡的厂商都能提
    供。比如PCI-RTL8029,便可到realtek公司的主页上下载一个修改EPROM的小程序。在Win9x和winnt 3.5、4.0下,网卡驱动程序使用NDIS规范与操作系统通信。MAC地址被
    存储在操作系统的某存储单元内,这时可以通过修改该内容达到目的而不用修改你的
    EPROM内容。1、首先打开注册表,找到HKEY_LOCAL_MACHINEsystemCurrentcontrolsetservices
      classes et000、0001、0002等下,观察DriverDesc内容为你要修改的网卡的描述。2、在其下,添一个字符串,名字为NetworkAddress,值设为你要的MAC地址,要连续写。
      如004040404040。3、然后到其下 NDIparams中加一项NetworkAddress的主键,在该主键下添加名为
      default的字符串,其值写你要设的mac地址,要连续的写,如004040404040。4、在NetworkAddress的主键下继续添加名为ParamDesc的字符串,其作用为指定Network-
      Address主键的描述,其值可为“MAC Address”,这样以后打开网络邻居的属性,双击
      相应网卡项会发现有一个高级设置,其下存在MAC Address 的选项,就是你在注册表中
     加的新项NetworkAddress,以后只要在此修改MAC地址就可以了。5、关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,双击相应网卡项会
      发现有一个MAC Address的高级设置项。用于直接修改MAC地址。一些网卡如d-link的de220在安装时,会自动在注册表中加入这些项目,你只需修改值
    就可以了。1、2步骤用于修改当前(下一次启动)时MAC 地址。
    3、4步骤用于在网络属性的网卡属性中添加相应高级属性。
    其实在win9x下都好改,
    regedit,
    HK_LM->SYSTEM->CURRENTCONTROLSET->
    SERVICES->CLASS->NET
    在下面找到你的网卡配置,一般是
    ne2000 compatible ethernet card,
    然后在000x(x是你网卡在网络设备里的序号)
    主键下,新建一个串值NetAddress,
    将值设为你需要同ip对应的mac地址,
    十六进制十二位,中间不加任何连字符,
    如0000e893a14b,大功告成。
    接着运行一下winipcfg,看看,
    Novell 2000 Adapter的适配器地址
    是不是成了你希望的地址?
    呵呵,我还想多说一句,
    在NT下怎么改呢,
    有人告诉我什么驱动程序的设置里可以改,
    但是我找不到,
    上次发了文求解,也没人理会,以下是我用在英文win2000下的方法
    1)Start->Settings->Network and Dial-up connections
     打开Local Area Connection 中的Property
     copy 网卡的设备描述(DriverDesc),
     就是网卡图标边的文字 如:PCI Ethernet Adapter,
    2)在Regedit下打开
     HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass下
     查找刚才copy下的文字,一般在000x(如,0005)下,
     为DriverDesc的Value。3)在000x下,添一个字符串,名字为NetworkAddress,
     值设为你要的MAC地址,要连续写。如 090038015E1C4)在000xNdiparamsNetworkAddress的主键下继续添加名为
     ParamDesc的字符串,作用为指定Network-Address主键的描述,
     值可以随便取,如“MAC Address”,这样网卡项的属性会多出
     个 项NetworkAddress,以后只要在此修改MAC地址就ok.
     
     
     发信人: nonsun (无晴), 信区: Networking
    标 题: 如何在Win2k下修改MAC地址
    发信站: BBS 水木清华站 (Fri Nov 17 14:50:08 2000)如何在Windows 2000下修改MAC地址动机:
      为了……,反正既不害人也不害己。缘由:
      搜寻了水母的Security版现存的文章和精华区,没找到说如何在NT/2000
    下修改网卡MAC地址的,仅有一篇提到了在Networking版的精华区中有,再到
    Networking版精华区《专题讨论系列》->《专题讨论:更改网卡MAC地址的五
    种方法》下,找到关于在NT下修改的文章,如法炮制后未果,决定放弃搜索文
    章,“自己动手,丰衣足食”……尽管如此,精华区的如下几篇文章还是给了
    我极大的启发:《Re: 更改网卡硬件地址的五个方法 (转载)》(第4篇,by
    wzheng)、《修改MAC地址的范例》(第9篇,by rifter)。
    修改方法:  1、在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass
    {4D36E972-E325-11CE-BFC1-08002BE10318}000、0001、0002等主键下,查
    找DriverDesc内容为你要修改的网卡的描述的,如0000。下面的方法和rifter
    《修改MAC地址的范例》中提到的一样,我就照搬了(注解的地方以“^^”标
    明)。“---->
      2、在其下,添一个字符串,名字为NetworkAddress,值设为你要的MAC地
        ^^^^^【指在0000主键下】
    址,要连续写。如004040404040。  3、然后到其下NDIparams中加一项NetworkAddress的主键,在该主键下
          ^^^^^【也是指在0000主键下】
    添加名为default的字符串,值写要设的MAC地址,要连续写,如004040404040。
    ^^^^^^^^^^^^^^^^^^^^^^^
    【实际上这只是设置在后面提到的高级属性中的**初始值**,实际使用的MAC
    地址还是取决于在第2点中提到的NetworkAddress参数,而且一旦设置后,以
    后高级属性中值就是NetworkAddress给出的值而非default给出的了。】  4、在NetworkAddress的主键下继续添加名为ParamDesc的字符串,其作用
    为指定NetworkAddress主键的描述,其值可为“MAC Address”,这样以后打
    开网络邻居的属性,双击相应网卡项会发现有一个高级设置,其下存在
    MAC Address 的选项,就是你在注册表中加的新项NetworkAddress,以后只要
    在此修改MAC地址就可以了。
      5、关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,
    双击相应网卡项会发现有一个MAC Address的高级设置项。用于直接修改MAC地
    址。
    <----”
    回顾:  我首先是照rifter的方法,但在HKEY_LOCAL_MACHINEsystem
    Currentcontrolsetservices下没有找到Classes以及其下的系列主键。  后又按照wzheng所说的方法,搜索与网卡对应的service,如我的rtl8029,
    在其下(即在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
    rtl8029Parameters下添加NetworkAddress字串值并设置,重启后没有效果,
    又尝试直接在rtl8029下添加并设置并重启后仍无效果。:-((  失望之余,试图“暴力”一把,在查看了rtl8029下的所有键和值之后,
    决定以rtl8029Enum下字符串“0”的取值的一部分“DEV_8029”作为特征值
    进行查找,在找到的一堆主键和值中分析后,决定在前述位置(即
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass
    {4D36E972-E325-11CE-BFC1-08002BE10318}000下)添加。首先添加的是上
    面3、4点所说的东东,再一看网卡的高级属性“MAC Address”已经出来了,
    但ipconfig报告的地址仍然没有变,再一次faint!  本想重启后再试一试,但我偷懒的在刚出来的“MAC Address”中设置了
    一把,再ipconfig……什么都没有(网卡不在了),再ipconfig……居然已经
    是改过之后的MAC地址了,Yeah!成功了!  接下来就简单了,查找一下“NetworkAddress”,就得到了第一点的结论。  这时候再回过头来看,差别不大嘛:
    HKEY_LOCAL_MACHINEsystemCurrentcontrolsetservicesclasses et000
                          ^^^^^^^^^    ^^^
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{...}000
                          ^^^^^^^^   ^^^^^
    只不过是把Service改成了Control,Net用一个CLSID来表示了,而{...}这一
    长串咒语其实就是Net的Class ID,看看其下的相关描述信息就知道了。看来
    事物的发展真是“螺旋式的上升”,转了一圈又以另一个面孔回来了。另外补
    充说一句,Currentcontrolsetservices下没有classes主键,只有“Class”,
    无论是NT还是98,想必是笔误,这样两者就完全对应起来了。  其实要找到这串“咒语”也不难,或者用特征字符串去查找,如网卡的描
    述信息或“Net”(不过后者找起来要费事儿得多),或者直接看“Class”下
    有一堆并列的“{4D...18}”,看第一个连字符前为72的就是,即
    {4D...72-......18}。
    环境:
      Windows 2000 Professional+SP1 on FAT32
      Realtek RTL8029(AS) PCI Ethernet Adapter'
      

  3.   

    修改注册表,程序如下:
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      Reg.RootKey := HKEY_LOCAL_MACHINE;
      if reg.OpenKey('\System\CurrentControlSet\Services\Class\NetTran
    s\0000', True) then Reg.WriteString('IPAddress','192.1.1.1');
      Reg.CloseKey;
      Reg.Free;
    end;