Действительно ли можно ли получить доступ к реестру окон от Adobe Air?

public class StringPool {

public static void main(String[] args) {

    String s1 = "Cat";// will create reference in string pool of heap memory
    String s2 = "Cat";
    String s3 = new String("Cat");//will create a object in heap memory

    // Using == will give us true because same reference in string pool

    if (s1 == s2) {
        System.out.println("true");
    } else {
        System.out.println("false");
    }

    // Using == with reference and Object will give us False

    if (s1 == s3) {
        System.out.println("true");
    } else {
        System.out.println("false");
    }

    // Using .equals method which refers to value

    if (s1.equals(s3)) {
        System.out.println("true");
    } else {
        System.out.println("False");
    }

    }
  }

---- Выход ----- true false true

8
задан Shawn 6 August 2008 в 17:37
поделиться

6 ответов

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

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

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

2
ответ дан 5 December 2019 в 12:15
поделиться

Если Вы можете я быть испуганным.

Почему Вы были бы испуганы? Воздух является настольной платформой, и доступ наличия к API ОС (таким как доступ к реестру) имеет много смысла.

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

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

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

2
ответ дан 5 December 2019 в 12:15
поделиться

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

Раз так Вы могли выпускник имя пользователя с "File.userDirectory.name".

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

1
ответ дан 5 December 2019 в 12:15
поделиться

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

0
ответ дан 5 December 2019 в 12:15
поделиться

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

0
ответ дан 5 December 2019 в 12:15
поделиться

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

1
ответ дан 5 December 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: