我们有一个用 VB6 编写的调制解调器终端应用程序。它非常适合我们需要它做的事情,但是在拨打特定提供商时需要启动 VPN 连接。我查看了一些相关的帖子,看起来这可能使用 RAS API 是可能的。任何人都可以建议在 MSDN 之外使用此 API 的资源/建议吗?
困难 - .NET 不是一个选项。
我们有一个用 VB6 编写的调制解调器终端应用程序。它非常适合我们需要它做的事情,但是在拨打特定提供商时需要启动 VPN 连接。我查看了一些相关的帖子,看起来这可能使用 RAS API 是可能的。任何人都可以建议在 MSDN 之外使用此 API 的资源/建议吗?
困难 - .NET 不是一个选项。
.Net 完全不是一种选择,还是不能将您拥有的所有东西切换到 .Net 中?您可以创建一个 .Net 类库并启用 COM+,然后在现有的 VB6 应用程序中使用该库。
如果这也不是一种选择,我们深表歉意。
在更糟糕的情况下,您只能找到 .NET 示例,我会使用 .NET Reflector 来查看 .NET 框架正在调用哪些 API 以及它正在传递哪些参数。我在 VB6 中尝试使用 GDI+ 时这样做了。一种算法在 .NET 中运行良好,但当我在 VB6 中使用直接 API 时却失败了。使用反射器,我发现我搞砸了参数,然后它开始工作。
这可能不像您需要的那么强大,但我过去曾在需要设置 VPN 连接的简单情况下调用系统 rasdial 命令。
USAGE:
rasdial entryname [username [password|*]] [/DOMAIN:domain]
[/PHONE:phonenumber] [/CALLBACK:callbacknumber]
[/PHONEBOOK:phonebookfile] [/PREFIXSUFFIX]
rasdial [entryname] /DISCONNECT
rasdial
不是工业实力,但很适合在脚本等中使用。
如果您可以处理互操作并了解将 C# 转换为 VB6,那么我的开源项目中几乎所有的 RAS API 都已完成。您可以将所需的零碎部分取出并放入您的项目中。只需查看项目上的源代码选项卡,它就在下面。
您感兴趣的组件是 RasDialer,请注意该组件在引擎盖下非常复杂。