2011-06-27 19 views
8

我已经写了一段软件,如果连接尚不存在,它使用USB 3G Dongle连接到互联网。如何防止出现新连接的网络位置对话框(家庭,工作,公共)?

当软件加载时,它检测互联网是否可用,如果没有,则创建拨号连接(通过RAS),然后拨打它。

如果第一次发生这种情况,网络位置对话框出现,要求用户选择是否在家,工作或公共。

无论如何,我可以以编程方式设置连接的网络位置,甚至可以告诉Windows不显示对话框并自动将该位置设置为公开?

干杯

加文

编辑:对于ScottM

public bool Connect(bool monitorSignalUpdates) 
{ 
    RasPhoneBook rpb = new RasPhoneBook(); 
    rpb.Open(true); 
    if (!rpb.Entries.Contains("3G Connection")) 
    { 
     rpb.Entries.Add(RasEntry.CreateBroadbandEntry("3G Connection", RasDevice.GetDeviceByName("HUAWEI Mobile Connect - 3G Modem", RasDeviceType.Modem), true)); 
    } 
    _rd = new RasDialer(); 
    _rd.EntryName = "3G Connection"; 
    _rd.PhoneNumber = "*99#"; 
    try 
    { 
     _rd.Dial(); 
     if (monitorSignalUpdates) 
     { 
      _queryPort.DataReceived += new SerialDataReceivedEventHandler(_queryPort_DataReceived); 
     } 
     return true; 
    } 
    catch (Exception ex) 
    { 
     int i = 99; 
    } 
    return false; 
} 
+2

+1,我怀疑是不是,但它是有趣的无 - 少。 –

+0

我无法告诉你如何,但我敢打赌,你可以模拟添加网络连接(做新的网络程序),然后在你的程序中放弃新的网络对话框。或者当它出现时点击按钮。 – Ben

+1

你可以发表一些关于如何创建连接的代码吗?我刚刚创建了一个电话簿条目,并直接使用RAS拨号,而不显示对话框 – scottm

回答

2

此注册表项控制Windows是否提示( “家庭/工作/公共”):

HKLM \ System \ CurrentControlSet \ Control \ Network \ NewNetworkWindowOff

http://technet.microsoft.com/en-us/library/gg252535%28v=ws.10%29.aspx

您可以随时“从系统托盘:)

‘的新网络,关闭通知’如果你能做到这一点,我敢肯定有一个注册表黑客和/或用于做PowerShell的API相同:

http://technet.microsoft.com/en-us/library/cc725831%28v=ws.10%29.aspx