wince2416 更改IP不重启系统


   // if(result1!=TRUE)
// return -1;
#if 1
CString m_strIp=_T("192.168.1.104");
CString m_strMask=_T("255.255.255.0");;
CString m_strGateWay=_T("192.168.1.1");;
 WCHAR Names[50];
 DWORD bytes;
  WCHAR Name[]=_T("DM9ISA1");    
//HANDLE hd=CreateFile(_T("WDG1:"),GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); // WriteFile(hd, pBuffer, dwLen, &dwSize, NULL );
int   inVal;
    BYTE  outBuf[1024];
    DWORD bytesReturned;
int nBootMode=1;
   /// if(nBootMode == 0)
  
 DWORD len = wcslen(Names);
 Names[len] = 0;
 Names[len+1] = 0;
 CString strKeyName;
 strKeyName.Format(_T("Comm\\%s\\Parms\\TCPIP"),Names);
 
 //  MessageBox(strKeyName);
 //打开注册表对网卡IP信息对应子健进行修改
 HKEY   hkey; 
 if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("Comm\\DM9ISA1\\Parms\\TCPIP"),0,KEY_WRITE,&hkey)   !=   ERROR_SUCCESS)   
 {
  MessageBox(TEXT("打开注册表错误"));   
//  return false;
 }
 DWORD   value;   
 value   =   0;
 WCHAR buffer[50];
 
 //set   EnableDHCP   
 if(RegSetValueEx(hkey,TEXT("EnableDHCP"),0,REG_DWORD,(const   unsigned   char   *)&value,sizeof(DWORD))   !=   ERROR_SUCCESS)   
  MessageBox(TEXT("关闭自动获得IP错误"));   
 //set   ip   address   
 memset(buffer,0,100);
 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错误"));
 //set   subnet   mask 
 memset(buffer,0,100);
 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("设置子网掩码错误"));   
 //set   gateway
 memset(buffer,0,100);
 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)   
  MessageBox(TEXT("设置网关错误"));
 RegFlushKey(hkey);
 RegCloseKey(hkey);
 
// CloseHandle( hNdis );


//SetSystemPowerState(NULL, POWER_STATE_RESET, POWER_FORCE);


//SetSystemPowerState(NULL, POWER_STATE_ON, POWER_FORCE);

// return true;
// TODO: 在此添加控件通知处理程序代码
#endif


 HANDLE                    hNdisPwr;
TCHAR       multiSz[257];
DWORD       cbBuffer = sizeof(multiSz);


StringCchCopy(multiSz, (cbBuffer / sizeof(TCHAR))-2, _T("DM9ISA1"));


hNdisPwr = CreateFile(
_T("NDS0:"), // Object name.
0x00, // Desired access.
0x00, // Share Mode.
NULL, // Security Attr
OPEN_EXISTING, // Creation Disposition.
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, // Flag and Attributes..
(HANDLE)INVALID_HANDLE_VALUE);
multiSz[::_tcslen(multiSz)+1] = _T('\0'); // Multi sz needs an extra null


BOOL result1=DeviceIoControl(hNdisPwr,
IOCTL_NDIS_UNBIND_ADAPTER, 
multiSz,
(_tcslen(multiSz)+2) * sizeof(TCHAR),
NULL, 0, NULL, NULL );  


result1=DeviceIoControl(hNdisPwr,
IOCTL_NDIS_BIND_ADAPTER, 
multiSz,
(_tcslen(multiSz)+2) * sizeof(TCHAR),
NULL, 0, NULL, NULL );  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值