C# 启用本地连接

useready 2012-06-10 03:52:10
C# 启用本地连接 代码
//项目 -- 添加引用 -- COM -- Microsoft Shell Controls And AutoMation
下面代码 在XP下能正常工作,能把网络连接列表放到comboBox1中. 但在win7下就不行..
请问怎么改呢??
   
Shell32.Shell sh = new Shell32.Shell();
Shell32.Folder folders;
folders = sh.NameSpace(3);

comboBox1.Items.Clear();

//进入控制面板列表
foreach (Shell32.FolderItem myItem in folders.Items())
{
//找到网络连接
if (myItem.Name == "网络连接")
{
Shell32.Folder fd = (Shell32.Folder)myItem.GetFolder;

//获取网络连接下所有内容
foreach (Shell32.FolderItem fi in fd.Items())
{
comboBox1.Items.Add(fi.Name.ToString());
comboBox1.SelectedItem = comboBox1.Items[0];
if (fi.Name.ToString() == "本地连接")
{
//获取本地连接下所有 右键
foreach (Shell32.FolderItemVerb Fib in fi.Verbs())
{
if (Fib.Name == "启用(&A)" || Fib.Name == "停用(&B)")
{
Fib.DoIt();
break;
}

}
}
}

}
}
...全文
180 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
鲸碳耗 2012-07-20
  • 打赏
  • 举报
回复
win7下 不叫“网络连接”


//找到网络连接
if (myItem.Name == "网络连接")

改为

//找到网络连接
if (myItem.Name == "网络和共享中心")


但是下面的项也还是找不到 我也在学习...
lixan8672 2012-06-11
  • 打赏
  • 举报
回复
//进入控制面板列表
foreach (Shell32.FolderItem myItem in folders.Items())
{
System.Diagnostics.Debug.Print(myItem.Name); //这里加个输出排查
//找到网络连接
if (myItem.Name == "网络连接")
{

测试了一下楼主的代码,第一个foreach输出结果就查找不到“网络连接” win7测试。
stonespace 2012-06-11
  • 打赏
  • 举报
回复
win7下用管理员账号登陆,不一定拥有完全的管理员权限,必须要用右键鼠标单击程序图标,选择“以管理员身份运行”,才能让程序拥有完全管理员权限,
useready 2012-06-10
  • 打赏
  • 举报
回复
我用的就是管理员权限
真相重于对错 2012-06-10
  • 打赏
  • 举报
回复
win7需要管理员权限

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧