我使用“ShellExecuteEx”从我的 C 代码中调用“Rasphone.exe”来创建拨号连接。我在 Windows XP 和 Windows 7 上发现了不同的行为。
Windows XP 中的行为:创建 RASDial 连接时没有任何弹出窗口。
Windows 7 中的行为: 拨号窗口弹出询问要拨打的号码。我没有输入任何号码,然后单击“拨号”按钮。连接得到连接。下面是我在 Windows 7 中获得的快照窗口?
行为差异的原因是什么?
行为差异的原因是什么?
Windows 7 是与 Windows XP 不同的操作系统。在发明 Metro 之前,Windows 团队无事可做,所以他们坐在那里修改一堆旧代码,看看是否有人注意到。看起来你已经找到了他们改变的事情之一。
不过不用担心。你拥有的代码一开始就注定失败。拨号网络连接的正确方法不是启动网络拨号应用程序,而是调用为此目的提供的 API。
您想要的 API 的名称是 WinINet,您可以在此处找到它的文档。特别是,您将对“建立与 Internet 的拨号连接”部分感兴趣,其中提到了InternetDial
功能。
当然,他们也改变了这一点。从 Windows Vista 开始,此函数在内部使用RAS API来建立连接。RasDial
通过直接调用orRasDialDlg
函数跳过中间人。