呵呵, 这可真不是什么高难题!
不过如果只有4分, 还不如设成0分, 贡献一把,
我已经在一道题目里答过了(给出如何获得IP地址和子网掩码,改为设置应该不难):
>如果我不知道罔卡型号NE2000可能不正确(我用的不是NT),
>有没有什么其它方法?
所谓本地网络号本来就是和Network Adapter Bind在一起的,
>有没有什么其它方法
没有标准的方法. 因为这不是Win API的功能, TCP/IP资料看了
也没用, 因为网络编程接口之类的东西都是对高层应用设计的,
象这样底层的问题(网卡以及协议配置)是由系统级的程序实现
的, 不同的系统, 实现起来有很大不同.
在NT上, 先获得网络设备驱动程序的名称:
sNetCardRegKey := '/SOFTWARE/Microsoft/Windows NT/CurrentVersion/NetworkCards/1'; 1 或者其他能在这个地方枚举到的子键
regRootKey.RootKey := HKEY_LOCAL_MACHINE;
regRootKey.OpenKeyReadOnly(SNetCardRegKey);
sNetCardDriverName := regRootKey.ReadString('ServiceName');
然后:
sServiceRegKey := '/SYSTEM/CurrentControlSet/Services/';
sTCPIPRegKey := sServiceRegKey + sNetCardDriverName + '/Parameters/Tcpip';
在'IPAddress'中获得这个设备的所有IP地址
regRootKey.ReadBinaryData('IPAddress', cIPAddressArray, 255);
在'SubNetMask'中获得IP地址对应的子网掩码
regRootKey.ReadBinaryData('SubNetMask', cNetMaskArray, 255);
在Win95/98中:
获得设备名称的办法:
sNetCardRegKey := '/Enum/Network/MSTCP/0001/'; 0001 或者其他能在这个地方枚举到的子键
sServiceRegKey := '/SYSTEM/CurrentControlSet/Services/Class/';
regRootKey.RootKey := HKEY_LOCAL_MACHINE;
regRootKey.OpenKeyReadOnly(SNetCardRegKey);
sNetCardDriverName := regRootKey.ReadString('Driver');
然后:
sTCPIPRegKey := sServiceRegKey + sNetCardDriverName;
regRootKey.OpenKeyReadOnly(sTCPIPRegKey);
最后获得IP地址和子网掩码:
sIPAddress := regRootKey.ReadString('IPAddress');
sNetMask := regRootKey.ReadString('IPMask');
Win95不支持一个设备对应多个地址