Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止新连接出现网络位置对话框(家庭、工作、公共)?_C#_Windows_Networking_Windows Vista_Location - Fatal编程技术网

C# 如何防止新连接出现网络位置对话框(家庭、工作、公共)?

C# 如何防止新连接出现网络位置对话框(家庭、工作、公共)?,c#,windows,networking,windows-vista,location,C#,Windows,Networking,Windows Vista,Location,我已经写了一个软件,使用USB 3G加密狗连接到互联网,如果连接还不存在 当软件加载时,它检测互联网是否可用,如果不可用,则创建拨号连接(通过RAS),然后拨号 如果这是第一次发生,网络位置对话框会弹出,要求用户选择是在家、在工作还是在公共场所 不管怎样,我可以通过编程设置连接的网络位置,或者甚至告诉windows不要显示对话框并自动将位置设置为公共 干杯 加文 编辑:适用于ScottM public bool Connect(bool monitorSignalUpdates) { R

我已经写了一个软件,使用USB 3G加密狗连接到互联网,如果连接还不存在

当软件加载时,它检测互联网是否可用,如果不可用,则创建拨号连接(通过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;
}

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

HKLM\System\CurrentControlSet\Control\Network\NewNetworkWindowOff

您始终可以从系统托盘中“关闭新网络上的通知:)

如果你能做到这一点,我相信会有注册表黑客和/或PowerShell API来做同样的事情:


+1,我的怀疑不是,但这仍然很有趣。我不能告诉你怎么做,但我打赌你可以模拟添加网络连接(做新网络程序所做的),然后在您的程序中放弃“新建网络”对话框。或者在弹出该对话框时单击该按钮。您可以发布一些有关如何创建连接的代码吗?我只创建了一个电话簿条目,让RAS直接拨号,而不显示该对话框。嗨,我没有收到任何有关您评论的通知,因此对此表示歉意他延迟了回复。我正在使用DotRas创建DUN,然后再拨号。有关代码,请参阅我的原始帖子。@Mazzzz:很遗憾,我不认为您可以。当您现在在Windows中创建新的拨号连接或网络时,将出现“网络位置”对话框。也就是说,我确实认为有一种方法可以通过告诉它“设置全部”来抑制它与公众建立新的联系。