我正在使用我的 VPN 建立连接
RasSetEntryProperties
创建一个新的电话簿条目,RasSetCredentials
将凭据添加到该电话簿条目,RasGetEntryDialParams
获取 RasDial 的参数,- 并
RasDial
最终建立新的连接。
经过一点麻烦,现在一切都像魅力一样。唯一的缺点是每次我像上面描述的那样连接到我的 VPN 时都会弹出讨厌的网络位置向导(至少在 Windows 7 上)。我怎样才能防止这种情况以编程方式发生?
我有一个非最佳解决方案。该窗口仍会弹出一秒钟,但它几乎会立即关闭。使用以下AutoIt脚本:
WinWaitActive("Network Location Wizard")
WinClose ("Network Location Wizard")
AutoIt 脚本可以很容易地编译成可执行文件,然后您可以在 C/C++ 代码之后添加以下行:
system("start Your_Autoit_script.exe");
这将在您的代码之后立即启动脚本,然后脚本将等待网络位置向导弹出(WinWaitActive),然后将其关闭。
使用这种方法有两个副作用:
您的用户不需要安装 AutoIt,生成的可执行文件是独立的。
编辑:也看到这个解决方案。
如果您从会话 0(即作为系统用户运行的 Windows 服务)调用这些函数,那么您将不会得到弹出窗口。这是因为会话 0 隔离。
如果您有足够的权限将代码作为服务运行,那么这将解决您的问题,如果没有,我认为 API 中没有任何东西可以帮助您。