是否有一种解决方法可以让经典的 Win32 桌面应用程序在 Windows RT (ARM) 上运行

dod*_*der 4 windows win32 microsoft-surface windows-rt

根据这篇arstechnica 文章这篇mozilla 博客文章,Win32 API 存在于Windows RT 上,但Microsoft 选择不将其提供给第三方应用程序。

WinRT ARM 上的 Office 和 Internet Explorer 使用标准 Win32 库并允许运行。微软表示,他们不向其他人提供它的原因是......“更长的电池寿命,可预测的性能,尤其是随着时间的推移,体验更可靠。”。

是否有一种方法可以让经典的 Win32 桌面应用程序在 Windows RT 上运行,例如通过注册表或其他一些方法。

注意我知道官方不支持它们,但我在这里问的是是否有一些解决方法可以让它发生。

dod*_*der 5

正如Journeyman Geek指出的那样,首先需要重新编译以针对 ARM 处理器。

我发现这里记录了一些关于如何实现这一点的步骤: 为 Windows RT 编译桌面应用程序

上述方法生成一个 ARM 可执行文件,但是当它在 Windows RT 设备上运行时,会导致以下错误消息:

Windows cannot verify the digital signature for this file
Run Code Online (Sandbox Code Playgroud)

这里有一些关于规避此错误消息的可能方法的更多详细信息:http : //forum.xda-developers.com/showthread.php?p=31519618&postcount=1

以及关于 StackOverflow 的持续讨论:https ://stackoverflow.com/questions/11151474/can-arm-desktop-programs-be-built-using-visual-studio-2012/

更新(2013 年 1 月 9 日)- CLROKR 利用

一位名叫clrokr 的开发人员提出了一种无需签名即可让任意桌面应用程序在 Windows RT 上运行方法

使用的方法是在 Windows 内核中破解单个字节......

...在内核深处,在 UEFI 安全启动保护的散列和签名数据部分中,有一个字节代表最低签名级别。

要做到这一点,每次你想运行应用程序时都需要使用远程调试器,所以它不是一个容易使用的黑客,但随着时间的推移可能会改进到有一个简单的越狱类型的安装程序。

这里有一些关于使用这种方法的人的更多信息:http : //forum.xda-developers.com/showthread.php?t=1885399