Можете ли вы получить доступ к реестру Windows из Adobe Air? - PullRequest
7 голосов
/ 06 августа 2008

(Y / N)

Редактировать: доступ только для чтения в порядке.

Ответы [ 8 ]

7 голосов
/ 23 июня 2011

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

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

2 голосов
/ 19 августа 2008

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

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

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

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

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

2 голосов
/ 07 августа 2008

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

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

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

1 голос
/ 23 октября 2013

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

Скачать: Модификатор реестра Adobe Air на Github

1 голос
/ 04 июня 2009

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

1 голос
/ 08 августа 2008

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

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

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

0 голосов
/ 08 августа 2008

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

0 голосов
/ 07 августа 2008

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

...