当前位置: 代码迷 >> WinCE >> wince批改网卡IP地址
  详细解决方案

wince批改网卡IP地址

热度:54   发布时间:2016-04-28 12:32:58.0
wince修改网卡IP地址

 WCHAR Names[50];
    DWORD bytes;
    HANDLE m_hFileHandle = CreateFile(_T("NDS0:"),0,0,NULL,
        OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE)INVALID_HANDLE_VALUE); 
    if( m_hFileHandle == INVALID_HANDLE_VALUE )
    {
          MessageBox(_T("获得网卡名时打开设备错误"));
          return;
    }
    // Get list of adapter names
    if (!DeviceIoControl(m_hFileHandle,IOCTL_NDIS_GET_ADAPTER_NAMES, NULL,0,Names,MAX_PATH,&bytes,NULL))
    {
          MessageBox(_T("获得网卡名错误"));
          return;
    }
    DWORD len = wcslen(Names);
    Names[len] = 0;
    Names[len+1] = 0;
    CString strKeyName;
    strKeyName.Format(_T("Comm\\%s\\Parms\\TCPIP"),Names);
    //打开注册表对网卡IP信息对应子健进行修改
    HKEY   hkey;  
    if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,strKeyName,0,KEY_WRITE,&hkey) != ERROR_SUCCESS)   
    {
          MessageBox(_T("打开注册表错误"));   
          return;
    }
    DWORD   value;   
    value   =   0;
    //set   EnableDHCP   
    if(RegSetValueEx(hkey,TEXT("EnableDHCP"),0,REG_DWORD,(const   unsigned   char   *)&value,sizeof(DWORD))
        !=   ERROR_SUCCESS)   
    {
          MessageBox(_T("关闭自动获得IP错误"));
    }
    WCHAR buffer[32];    
    memset(buffer,0,64);
    memcpy(buffer,m_strIp.GetBuffer(0),m_strIp.GetLength()*2);
    if(RegSetValueEx(hkey,TEXT("IpAddress"),0,REG_MULTI_SZ,(const   unsigned   char   *)buffer, m_strIp.GetLength()*2+2) !=   ERROR_SUCCESS)   
    {
          MessageBox(TEXT("设置IP错误"));
    }
    
    memset(buffer,0,64);
    memcpy(buffer,m_strMask.GetBuffer(0),m_strMask.GetLength()*2);
    if(RegSetValueEx(hkey,TEXT("SubnetMask"),0,REG_MULTI_SZ,(const   unsigned   char   *)buffer, m_strMask.GetLength()*2+2) != ERROR_SUCCESS)  
    {
        MessageBox(TEXT("设置子网掩码错误"));
    }
    
    memset(buffer,0,64);
    memcpy(buffer,m_strGateWay.GetBuffer(0),m_strGateWay.GetLength()*2);
    if(RegSetValueEx(hkey,TEXT("DefaultGateway"),0,REG_MULTI_SZ,(const   unsigned   char   *)buffer, m_strGateWay.GetLength()*2+2) !=   ERROR_SUCCESS)   
  相关解决方案