使用RasDial建立VPN连接后,保持网络位置向导不会弹出?

Dr.*_*kzo 5 c c++ vpn winapi windows-7

我正在建立与VPN的连接

  • RasSetEntryProperties 创建一个新的电话簿条目,
  • RasSetCredentials 要为该电话簿条目添加凭据,
  • RasGetEntryDialParams 获取RasDial的参数,
  • RasDial最终建立一个新的连接.

经过一番麻烦后,它现在就像一个魅力.唯一的缺点是,每次我连接到VPN时都会出现讨厌的网络位置向导(至少在Windows 7上),如上所述.如何以编程方式防止这种情况发生?

Hel*_*rld 0

我有一个非最佳解决方案。该窗口仍会弹出一瞬间,但几乎会立即关闭。使用以下AutoIt脚本:

WinWaitActive("Network Location Wizard")
WinClose ("Network Location Wizard")
Run Code Online (Sandbox Code Playgroud)

AutoIt 脚本可以轻松编译为可执行文件,然后您可以在 C/C++ 代码后添加以下行:

system("start Your_Autoit_script.exe");
Run Code Online (Sandbox Code Playgroud)

这将在您编写代码后立即启动脚本,然后脚本将等待网络位置向导弹出 (WinWaitActive),然后将其关闭。

使用此方法有两个副作用:

  1. 该窗口仍会显示很短的一段时间。
  2. 托盘图标将出现很短的时间。

您的用户不需要安装 AutoIt,生成的可执行文件是独立的。

编辑:另请参阅此解决方案