概述
1.IP地址设置栏, 自动获得IP地址的选项关联的是window 系统注册表 EnableDHCP , 为1是自动获取,0就是手动设置.
ip地址为自动获取时,IPAddress,SubnetMask,DefaultGateway 都为空.
DhcpIPAddress
Dhcpxxxxxxx不为空.
ip地址为手动设置时,IPAddress,SubnetMask,DefaultGateway 为对应设置的值,DhcpIPAddress没有这样的键值.
2.关于设置DSN服务器的问题:
自动获取和手动设置DSN服务器地址的选项 和注册表里面的NameServer相关联
NameServer为空时,代表是自动获取DSN服务器
NameServer为不为空时,代表就是备选的DSN服务器.
修改对应的ip后,必须要重启网卡才能使ip生效,因为发送通知window的函数无效,只能通过控制网卡来生效IP地址
BOOL CMyDlg::ChangeAdapterStatus(LPCTSTR AdapterDeviceDesc, int Flag)//Flag =DICS_DISABLE-->禁用网络
{ //Flag =DICS_ENABLE--->恢复网络
if (INVALID_HANDLE_VALUE == (hDevInfo =
SetupDiGetClassDevs(NULL,NULL,0,
DIGCF_PRESENT|DIGCF_ALLCLASSES)))
{
printf("GetClassDevs");
}
DWORD i;
SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};
unsigned char *guid[4]={0};
char DeviceName[200]={0};
wchar_t str[100]={0};
int size=100;
DWORD DataT;
unsigned char *buffer=NULL;
DWORD sz=0;
for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)
{
//DeviceInfoData.ClassGuid="{4D36E972-E325-11CE-BFC1-08002BE10318}";
StringFromGUID2(DeviceInfoData.ClassGuid,str,size);
char temp[100]={0};
char Rtl[]="{4D36E972-E325-11CE-BFC1-08002BE10318}";
for(int j=0;str[j]!='