5

我正在使用我的 VPN 建立连接

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

经过一点麻烦,现在一切都像魅力一样。唯一的缺点是每次我像上面描述的那样连接到我的 VPN 时都会弹出讨厌的网络位置向导(至少在 Windows 7 上)。我怎样才能防止这种情况以编程方式发生?

4

2 回答 2

0

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

WinWaitActive("Network Location Wizard")
WinClose ("Network Location Wizard")

AutoIt 脚本可以很容易地编译成可执行文件,然后您可以在 C/C++ 代码之后添加以下行:

system("start Your_Autoit_script.exe");

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

使用这种方法有两个副作用:

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

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

编辑:也看到这个解决方案

于 2013-05-09T07:56:12.753 回答
0

如果您从会话 0(即作为系统用户运行的 Windows 服务)调用这些函数,那么您将不会得到弹出窗口。这是因为会话 0 隔离。

如果您有足够的权限将代码作为服务运行,那么这将解决您的问题,如果没有,我认为 API 中没有任何东西可以帮助您。

于 2015-11-26T18:08:05.680 回答