有没有办法从 UWP 应用程序中的 I***Profile 获取 ConnectionStatus?

Posted

技术标签:

【中文标题】有没有办法从 UWP 应用程序中的 I***Profile 获取 ConnectionStatus?【英文标题】:Is there a way of getting ConnectionStatus from I***Profile in a UWP application? 【发布时间】:2019-03-22 03:02:15 【问题描述】:

我有以下 WinRT 代码,可以很好地发现活动的 *** 配置文件:

***ManagementAgent ***;
auto profiles = ***.GetProfilesAsync().get();
wprintf(L"Found %d profiles\n", profiles.Size());
for (auto vp : profiles)

    wprintf(L"Found profile %s\n", vp.ProfileName().c_str());

我想检查 ConnectionStatus,但这在 I***Profile 界面上不可用。 我尝试添加以下内容无济于事,因为 ConnectionStatus 在具体的 ***PlugInProfile 和 ***NativeProfile 类中可用:

***PlugInProfile pp = vp.as<***PlugInProfile>();
if (pp != nullptr)
    wprintf(L"ConnectionStatus = %d\n", pp.ConnectionStatus());

这只会给出一个 Invalid Handle 错误。

有没有办法从 I***Profile 获取 ConnectionStatus?

【问题讨论】:

这听起来不对。 as 成员函数模板要么返回一个有效的接口指针,要么抛出。您得到的确切错误是什么,来自哪里? 抱歉,Invalid Handle 错误发生在周围的 catch 块中,因此抛出 实际上很容易从 I***Profile 获取连接状态 - 只需从 Windows.Networking.***.***NativeProfile 查询一个新配置文件,为其分配新获取的配置文件名称,然后查询具有 @ 的 ***NativeProfile2 987654326@。我有 C 代码可以做到这一点,如果有人感兴趣,我会对其进行测试(因为我将其发布为评论而不是回答)。我无法执行的更复杂的任务是获取当前连接到的服务器。 考虑到您尚未在 %userprofile%\AppData\Local\Packages\%fullpackagename%\LocalState 中创建 rasphone.pbk 文件。因为如果你有 - I***Profile 可以查询I***NativeProfile。该程序设计巧妙,如果您的应用程序 LocalState 中缺少 rasphone.pbk,它只会填写配置文件名称并禁止进一步查询 nativeprofile。上帝保佑微软。然而,我发现这有一些繁重的逆向工程——如果有一个好的文档和好的代码,那将会很有帮助。 【参考方案1】:

提示:无效句柄错误是 Windows 中的一个错误;它已被修复,并且修复程序已在低级别提供服务(可能针对 RS5 和 19H1)

【讨论】:

以上是关于有没有办法从 UWP 应用程序中的 I***Profile 获取 ConnectionStatus?的主要内容,如果未能解决你的问题,请参考以下文章

从api获取图像作为字符串?到 UWP 应用程序

有没有办法在后面的代码中解析 UWP 中的矢量路径几何?

如何从UWP Map上的MapIcon中删除点和尾

UWP如何从文件夹中获取快捷方式

UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频

使用 .Net 标准库中的 UWP 方法