(y/N)Можете ли вы получить доступ к реестру Windows из Adobe Air?
Редактировать: доступ только для чтения.
(y/N)Можете ли вы получить доступ к реестру Windows из Adobe Air?
Редактировать: доступ только для чтения.
Если вы хотите заставить пользователя также установить другое приложение, вы можете написать небольшую службу Windows C# или C++, которая просто открывает Socket, который предоставляет какой-то протокол для доступа к реестру. Затем в AIR вы можете использовать класс Socket для отправки сообщений в/из службы C#, которые возвращают результаты в приложение AIR.
Когда приложение загружается, вы можете попытаться подключиться к Socket, и если соединение будет отклонено, вы можете попросить пользователя загрузить/установить службу.
Что касается прямого доступа к реестру, я уверен, что Adobe не допустит этого из AIR.
Теоретически вы можете изменить фактические файлы реестра, но я бы очень отговаривал эту идею.
Вы пытаетесь определить, является ли пользователь администратором или нет?
Если это так, вы можете указать имя пользователя с помощью «File.userDirectory.name».
И я думаю, чтобы выяснить, является ли пользователь администратором, возможно, вы попытаетесь получить доступ к файлу с правами администратора (возможно, попробуйте записать файл в Windows/System32). Если сбой доступа к файлу, вы, вероятно, можете предположить, что пользователь находится под лимитированной учетной записью.
Будьте очень осторожны, если вы решили создать сервер сокетов, который прослушивает команды реестра. Вы потенциально создаете дыру в области безопасности, и личные брандмауэры пользователей могут оказаться в пути с точки зрения удобства использования.
Если вы можете меня испугать.
Почему вы в ужасе? Air - это настольная платформа, и доступ к API-интерфейсам ОС (например, к доступу к реестру) имеет большой смысл.
Это, как говорится, сейчас не поддерживается (и поскольку Adobe кажется очень ориентированной на Mac, я сомневаюсь, что она будет добавлена).
Я поселил на захват имена пользователей от имени каталога пользователя
Использование File.userDirectory.name будет работать в большинстве случаев, но это кажется очень хрупкой реализации, он опирается на OS, поддерживающей соглашение о том, что имя пользователя является их каталогом. Я могу придумать несколько возможных вещей, которые могут сломать его (игра с TweakUI и т. Д.).
Немного поздно, но у меня есть желание от клиента прочитать некоторые значения из реестра, когда проект был почти закончен. Если бы таких пожеланий было больше, я бы никогда не выбрал AIR. Но я нашел хорошее расширение от FluorineFx, и, расширив его, теперь я могу читать значения строк и dword из реестра. Только для 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. Детали для опций программы 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 Registry Modifier на Github
приложение является фоновым загрузчик, и мне нужно каким-то образом получать имя и роли пользователей, которые в настоящее время хранятся только в реестре. Я думаю, что я мог бы получить файлы реестра с доступом только для чтения, но, очевидно, было бы безумным, чтобы попытаться разобрать (как сказал Джарин). Я решил ухватить имя пользователя от имени каталога пользователя и написать веб-метод на сервере, чтобы вернуть свою роль. Спасибо, C#. – Shawn 2009-10-22 15:20:07
Если можешь, я бы в ужасе. – sparkes 2008-08-06 16:50:10