apache flex -你能从Adobe Air访问windows注册表吗?

Translate

(是/否)

编辑:只读访问就可以了。

This question and all comments follow the "Attribution Required."

所有的回答

Translate

我还没有尝试过,但是我想我已经找到了解决方法。

Adobe AIR无法写入Windows注册表,但是您可以在AIR 2中启动本机进程。这是一篇博客文章,展示了如何执行此操作:http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html

现在,在Windows上,您可以使用.reg文件修改Windows注册表。 .reg文件只是regedit.exe读取的纯文本文件。因此,从理论上讲,您可以将.reg文件写入文件系统,然后使用传入的.reg文件和... TADA启动regedit.exe!您刚刚从AIR应用程序修改了Windows注册表!

要读取值,可以使用regedit的导出功能写入reg文件并从reg文件中读取。 regedit选项的详细信息:http://www.robvanderwoude.com/regedit.php

以下是一些其他资源:
.reg文件语法:http://support.microsoft.com/kb/310516
使用AIR写入文件:http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html

来源
Translate

如果您愿意强迫用户也安装另一个应用程序,则可以编写一个小的C#或C ++ Windows服务,该服务只是打开一个套接字,该套接字提供了用于访问注册表的某种协议。然后,在AIR中,您可以使用Socket类向C#服务发送消息或从C#服务发送消息,这会将结果返回到AIR应用程序。

应用加载时,您可以尝试连接到Socket,如果连接被拒绝,则可以提示用户下载/安装服务。

至于直接访问注册表,我可以肯定Adobe不允许AIR这样做。

来源
Translate

如果可以的话,我会感到恐惧。

你为什么要惊恐? Air是一个桌面平台,因此可以访问操作系统的API(例如注册表访问)。

话虽这么说,现在不支持它(而且Adobe似乎非常以Mac为中心,所以我怀疑它是否会被添加)。

我已经决定从用户目录的名称中获取用户名称

在大多数情况下,使用File.userDirectory.name可以使用,但似乎是一个非常脆弱的实现,它依赖于OS维护以用户名作为其目录的惯例。我可以想到一些可能会破坏它的东西(使用TweakUI等)。

来源
Translate

您是否要确定用户是否是管理员?

如果是这样,您可以使用“ File.userDirectory.name”对用户名进行分级。

我想弄清楚用户是否是管理员,您可能可以尝试访问需要管理员特权的文件(也许尝试将文件写入Windows / System32)。如果文件访问失败,您可能会认为该用户使用的是受限帐户。

来源
Henry Lee
Translate

有点晚了,但是我希望客户在项目快完成时从注册表中读取一些值。如果有更多这样的愿望,我将永远不会选择AIR。但是我从FluorineFx找到了一个不错的扩展,并且通过扩展它,现在可以从注册表中读取字符串和dword值。仅Windows:http://aperture.fluorinefx.com/

来源
Leona Lee
Translate

这是使用NativeProcess和Python在Adobe Air中修改Windows注册表的示例。因此,您仅需一行代码即可添加,删除或读取键!

下载:Adobe Air Registry修改器在Github上

来源
Translate

从理论上讲,您可以修改实际的注册表文件,但我强烈建议不要这样做。

来源
Translate

如果决定创建一个侦听注册表命令的套接字服务器,请非常小心。您可能会创建一个安全漏洞,并且用户的个人防火墙可能会妨碍可用性。

来源
上一个问题:
xml -HTML版本选择