Можете ли вы получить доступ к реестру Windows из Adobe Air?

(Y / N)

Изменить: Доступ только для чтения в порядке.

6.08.2008 16:47:41
Если бы ты мог, я бы ужаснулся.
sparkes 6.08.2008 16:50:10
Приложение является фоновым загрузчиком, и мне нужен какой-то способ получения имени и роли пользователя, который в настоящее время хранится только в реестре. Я думаю, что смогу получить доступ к файлам реестра с доступом только для чтения, но, очевидно, было бы безумно пытаться разобрать (как сказал Jarin). Я остановился на извлечении имени пользователя из имени каталога пользователя и написании веб-метода на сервере, чтобы вернуть их роль. C # была креативной идеей, спасибо.
Shawn 22.10.2009 15:20:07
8 ОТВЕТОВ

Если вы хотите заставить пользователя также установить другое приложение, вы можете написать небольшую службу Windows на C # или C ++, которая просто открывает Socket, который предоставляет некоторый протокол для доступа к реестру. Затем в AIR вы можете использовать класс Socket для отправки сообщений в / из службы C #, которые будут возвращать результаты в приложение AIR.

Когда приложение загружается, вы можете попытаться подключиться к Socket, а если соединение отклонено, вы можете предложить пользователю загрузить / установить службу.

Что касается прямого доступа к реестру, я уверен, что Adobe не допустит этого из AIR.

2
7.08.2008 16:37:02

Вы можете теоретически изменить реальные файлы реестра, но я бы очень не одобрял эту идею.

0
7.08.2008 16:39:35

Вы пытаетесь определить, является ли пользователь администратором или нет?

Если это так, вы можете изменить имя пользователя с помощью «File.userDirectory.name».

И я думаю, чтобы выяснить, является ли пользователь администратором, вы могли бы попытаться получить доступ к файлу, который требует прав администратора (возможно, попытаться записать файл в Windows / System32). Если доступ к файлу не удается, вы, вероятно, можете предположить, что пользователь находится под ограниченной учетной записью.

1
7.08.2008 20:02:21

Будьте очень осторожны, если решите создать сервер сокетов, который будет прослушивать команды реестра. Вы потенциально создаете дыру в безопасности, и личные брандмауэры пользователей могут мешать с точки зрения удобства использования.

0
7.08.2008 20:19:24

Если бы ты мог, я бы ужаснулся.

Почему вы будете в ужасе? Air - это настольная платформа, и иметь доступ к API-интерфейсам ОС (например, к реестру) имеет большой смысл.

Это, как говорится, сейчас не поддерживается (и, как Adobe, кажется, очень Mac-центричный, я сомневаюсь, что он будет когда-либо добавлен).

Я остановился на получении имени пользователя от имени каталога пользователя

Использование File.userDirectory.name будет работать в большинстве случаев, но это выглядит как очень хрупкая реализация, она опирается на ОС, поддерживающую соглашение о том, чтобы имя пользователя было их каталогом. Я могу придумать несколько возможных вещей, которые могут его сломать (игра с TweakUI и т. Д.).

2
19.08.2008 04:47:45

Немного поздно, но я получил от клиента желание прочитать некоторые значения из реестра, когда проект был почти завершен. Если бы таких желаний было больше, я бы никогда не выбрал AIR. Но я нашел хорошее расширение от FluorineFx, и, расширив его, теперь я могу читать значения строк и двойных слов из реестра. Только для Windows: http://aperture.fluorinefx.com/

1
3.06.2009 22:32:52

Я еще не пробовал это, но я думаю, что нашел обходной путь.

Adobe AIR не может выполнять запись в реестр Windows, однако вы можете запустить собственный процесс в AIR 2. Вот сообщение в блоге, в котором показано, как это сделать: http://www.adobe.com/devnet/air/flex/quickstart. /articles/interacting_with_native_process.html

Теперь в Windows вы можете изменять реестр Windows с помощью файлов .reg. REG-файлы - это просто текстовые файлы, которые читает regedit.exe. Таким образом, теоретически вы можете записать файл .reg в файловую систему, а затем запустить regedit.exe с переданным файлом .reg и ... ТАДА! Вы только что изменили реестр Windows из своего приложения AIR!

Чтобы прочитать значение, вы можете использовать функцию экспорта 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

7
23.06.2011 17:33:07

Вот пример изменения реестра Windows в Adobe Air с использованием NativeProcess и Python. Таким образом, вы можете добавлять, удалять или читать ключи только одной строкой кода!

Загрузить: Adobe Air Registry Modifier на Github

1
20.11.2014 16:35:54