dns修改工具(vc)
前几次写的是在本机修改dns的方法,后来我感觉黑乎乎的界面实在难看,想自己写个界面dns修改工具。遇到了很多麻烦,加上最近的考试,就暂时放弃了进一步研究的想法。不过今天还是唠叨一下,希望有经验的高手给点意见。
至于这个工具,还是基于命令行修改dns,所以代码几乎没有变化,只是放在了MFC里罢了。
代码部分:
void CMYDNSDlg::OnBnClickedButtonGoogle() { // TODO: 在此添加控件通知处理程序代码 char cmd[256]="netsh interface ip set dns ChinaNetSNWide static 8.8.8.8"; char cmd2[256]="netsh interface ip add dns ChinaNetSNWide 8.8.4.4"; if (system(cmd) == 0&&system(cmd2)==0) { MessageBox(_T("GoogleDNS 设置成功")); } else { MessageBox(_T("设置失败!")); } } void CMYDNSDlg::OnBnClickedButtonOpen() { // TODO: 在此添加控件通知处理程序代码 char cmd[256]="netsh interface ip set dns ChinaNetSNWide static 208.67.222.222"; char cmd2[256]="netsh interface ip add dns ChinaNetSNWide 208.67.220.220"; if (system(cmd) == 0&&system(cmd2)==0) { MessageBox(_T("Open DNS 设置成功")); } else { MessageBox(_T("设置失败!")); } } void CMYDNSDlg::OnBnClickedButtonDef() { // TODO: 在此添加控件通知处理程序代码 char cmd[256]="netsh interface ipv4 set dns ChinaNetSNWide dhcp"; if(system(cmd)==0) { MessageBox(_T("恢复默认设置成功")); } else { MessageBox(_T("恢复设置失败!")); } }
界面如图:
下面是关键了,就是我遇到了N多问题
1.程序在win7下运行需要用管理员身份运行
2.暂时是在vs2008下写的,我不会打包,不能直接放在xp下运行。网上说的似乎都试过了,比如静态编译,比如新建安装程序,但是方法没有掌握。
3.不能获取本机的连接名称(例如我这里是本地连接)
4.不支持e信,这个比较dt,我直接在cmd中运行,电信也无法直接修改
5.运行的时候有黑框(执行cmd)
6.还有很多想法,但是我发现靠简单的cmd修改不行,似乎需要调用注册表
问题还有很多,我也发现这种方法的弊端,所以在两天晚上研究未果的情况下,暂时放弃了这个想法。希望高手给点指点,我先谢过。
————–猥琐的分割线————-
这几天就要考试了,还有4门要考试到7.7,这几天或许就不能更新了,暂时的离别不是坏事,呵呵,我会回来的。