gpt4 book ai didi

windows - 我可以将 winRT 应用程序作为屏幕保护程序运行吗?

转载 作者:可可西里 更新时间:2023-11-01 14:13:51 26 4
gpt4 key购买 nike

有没有办法让我的 winRT 应用程序成为 xaml 中的屏幕保护程序?

最佳答案

正如 Jerry 所说,没有直接的方法来制作 Windows 应用商店应用程序屏幕保护程序。但是,有一个迂回的解决方案可能适用于 Windows 8,但不适用于 Windows RT。我几乎可以正常工作了。我将分享我目前所拥有的。

屏幕保护程序只是一个带有 .scr 扩展名的可执行文件,保存在 C:\Windows\System32 中。例如,查看 C:\Windows\System32\Bubbles.scr。我想到的解决方案是创建一个 .scr 屏幕保护程序,其唯一目的是启动您的 Windows 应用商店应用程序,您说该应用程序将使用 XAML。

您无法直接从命令行启动 Windows 应用商店应用,因此您将创建一个启动器应用。查看名为 Automating the testing of Windows 8 apps 的博客文章阿什温·尼达曼加拉 (Ashwin Needamangala) 着。在文章的中途,查找名为自动激活您的应用 的部分。它包含一个示例 C++ 应用程序,可以通过以下方式启动 Windows 应用商店应用程序:

C:>Win8AppLaunch.exe Microsoft.BingNews_8wekyb3d8bbwe!AppexNews

该页面上的示例启动器需要修改,但在您这样做之前,只需将代码复制到 C++ 控制台应用程序中:

enter image description here

您几乎已准备好从命令行对其进行测试,但您需要将应用程序的名称指定为 AppUserModelId。详细信息在 Ashwin 的帖子中,但换句话说,您首先要允许在您的系统上执行 PowerShell 脚本:

PS C:> Set-ExecutionPolicy AllSigned

然后运行这个 PowerShell 脚本:

$installedapps = get-AppxPackage
foreach ($app in $installedapps)
{
foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
{
$app.packagefamilyname + "!" + $id
}
}

您可能喜欢在 Windows PowerShell ISE 中运行它.它很光滑。找到应用的 AppUserModelId,然后从命令行测试 Win8AppLaunch.exe,如上所示。这应该从命令行启动您的 Windows 应用商店应用程序。

接下来,修改 C++ 启动器以硬编码应用程序的 AppUserModelId,而不是从命令行参数中解析它。我创建了 a Gist of this .重要的部分是我声明 myApp 的行。

构建新的可执行文件,将其重命名为 MyScreenSaver.scr 并将其放入 C:\Windows\System32。然后它将出现在屏幕保护程序设置控制面板中。您可以在那里预览屏幕保护程序,它可以工作。但是,如果您等待屏幕保护程序启动,它会短暂地弹出一个控制台窗口并且永远不会完全启动。我不确定为什么。我尝试通过将项目切换到 Windows 应用程序来禁用控制台窗口的创建,但这没有帮助。您可以通过更改 Properties | 来自己尝试配置 |链接器 |系统 |子系统WINDOWS。这有点复杂,因为您还需要将入口点从 _tMain 更改为 _tWinMain。如果您需要详细信息,请通过我的博客与我联系。我的 StackOverflow 配置文件列出了它。

此时它几乎完全正常工作。您可以尝试从一个您知道有效的空白 C++ 屏幕保护程序开始,然后复制上面的代码。如果我有更多时间,也许我会自己尝试一下。

关于windows - 我可以将 winRT 应用程序作为屏幕保护程序运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com