(да / нет)
Обновлено: доступ только для чтения в порядке.
Если можно, я был бы в ужасе.





Если вы хотите заставить пользователя также установить другое приложение, вы можете написать небольшую службу Windows на C# или C++, которая просто открывает Socket, который предоставляет какой-то протокол для доступа к реестру. Затем в AIR вы можете использовать класс Socket для отправки сообщений в / из службы C#, которая будет возвращать результаты в приложение AIR.
Когда приложение загружается, вы можете попытаться подключиться к Socket, и если соединение будет отклонено, вы можете предложить пользователю загрузить / установить службу.
Что касается прямого доступа к реестру, я почти уверен, что Adobe не разрешит этого из AIR.
Теоретически вы можете изменить фактические файлы реестра, но я бы категорически не одобрял эту идею.
Вы пытаетесь определить, является пользователь администратором или нет?
В таком случае вы можете присвоить имя пользователя "File.userDirectory.name".
И я думаю, чтобы выяснить, является ли пользователь администратором, вы, вероятно, можете попытаться получить доступ к файлу, который требует прав администратора (возможно, попробуйте записать файл в Windows / System32). Если доступ к файлу не удается, вы, вероятно, можете предположить, что пользователь находится под учетной записью с ограниченным доступом.
Будьте очень осторожны, если решите создать сервер сокетов, который прослушивает команды реестра. Вы потенциально создаете брешь в безопасности, и персональные брандмауэры пользователей могут мешать удобству использования.
If you can I'd be horrified.
С чего бы тебе ужаснуться? Air - это платформа для настольных компьютеров, и доступ к API-интерфейсам ОС (например, доступ к реестру) имеет много смысла.
При этом он не поддерживается сейчас (и, поскольку Adobe, похоже, очень ориентирована на Mac, я сомневаюсь, что он когда-либо будет добавлен).
I have settled on grabbing the users name from the name of the user directory
Использование File.userDirectory.name будет работать в большинстве случаев, но это кажется очень хрупкой реализацией, она полагается на то, что ОС поддерживает соглашение о том, что имя пользователя является их каталогом. Я могу придумать несколько возможных вещей, которые могут его сломать (игра с TweakUI и т. д.).
Немного поздно, но я получил от клиента желание прочитать некоторые значения из реестра, когда проект был почти завершен. Если бы таких желаний было больше, я бы никогда не выбрал AIR. Но я нашел хорошее расширение от FluorineFx, и, расширив его, я теперь могу читать строковые и двойные слова из реестра. Только для Windows: http://aperture.fluorinefx.com/
Я еще не пробовал, но думаю, что нашел обходной путь.
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 и ... TADA! Вы только что изменили реестр 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
Вот пример изменения реестра Windows в Adobe Air с помощью NativeProcess и Python. Таким образом, вы можете добавлять, удалять или читать ключи всего одной строкой кода !!
Скачать: Модификатор реестра Adobe Air на Github
Приложение представляет собой фоновый загрузчик, и мне нужен способ получить имя и роль пользователя, которые в настоящее время хранятся только в реестре. Я думаю, что мог бы получить доступ к файлам реестра с доступом только для чтения, но, очевидно, было бы безумием пытаться разобрать (как сказал Джарин). Я решил взять имя пользователя из имени каталога пользователя и написать веб-метод на сервере, чтобы вернуть его роль. C# был творческой идеей, спасибо.