闻心阁

一蓑烟雨看苍生,半壶浊酒笑红尘

dns修改工具(vc)

2011-06-29 约 1 分钟读完 搬砖秘籍

前几次写的是在本机修改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,这几天或许就不能更新了,暂时的离别不是坏事,呵呵,我会回来的。