Какие альтернативы реестру Windows существуют для хранения [закрытых] параметров конфигурации программного обеспечения

6
задан SmacL 19 February 2010 в 15:22
поделиться

7 ответов

Я предлагаю перейти на XML-файл в том же месте, что и исполняемый файл. Одно из преимуществ заключается в том, что XML переносится на машины, отличные от Windows (и даже между версиями Windows).

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

4
ответ дан 8 December 2019 в 14:42
поделиться

Вы можете создать систему, аналогичную .Net's Isolated Storage , где файл конфигурации находится в безопасном каталоге , то вы можете использовать GetPrivateProfileString для доступа к нему.

2
ответ дан 8 December 2019 в 14:42
поделиться

Можно перейти на XML/INI файл конфигурации, который хранится в папке данных приложения пользователя или, возможно, даже в папке "Мои документы". Таким образом, пользователь может скопировать файл, чтобы сохранить свои настройки.

1
ответ дан 8 December 2019 в 14:42
поделиться

Я перестал использовать реестр в моем последнем проекте настольного приложения и вместо этого использую INI-файл, хранящийся в папке пользователя % APPDATA% . Если вы храните только строки и целые числа, тогда INI-файл выполняет свою работу и его легко редактировать в Блокноте.

1
ответ дан 8 December 2019 в 14:42
поделиться

Apple использует файлы plist , которые в основном представляют собой XML.

0
ответ дан 8 December 2019 в 14:42
поделиться

Mouviciel правильный.

Если требуется сохранить отступы, можно поместить здешний текст в отдельный файл. Тем не менее, вам придется справиться с заменой самостоятельно.

-121--4112682-

Если у вас установлена стандартная библиотека PHP, вы должны иметь возможность просто реализовать Countable в своем классе, а затем определить функцию count ():

class foo implements Countable {
    ...
    public function count() {
        # do stuff here
        return $count;
    }
}

Подробнее о SPL читайте здесь: http://www.php.net/manual/en/book.spl.php

Подробнее об интерфейсе Countable здесь: http://php.net/manual/en/countable.count.php

-121--3866334-

Boost имеет библиотеку Boost.PropertyTree , которая абстрагирует параметры настройки в иерархическую структуру. Его можно сериализовать в несколько форматов, таких как XML, JSON и INI.

Храните эти файлы в % APPDATA% . Хранить их в том же каталоге, что и исполняемый файл, не рекомендуется, так как % PROGRAMFILES% не может записываться обычными пользователями из XP.

5
ответ дан 8 December 2019 в 14:42
поделиться

имя модуля не является типом.

Список в List.map и пусть (a: List < int >) = [1; 2; 3] различаются.

Первый List - имя модуля, второй - тип.

-121--2192902-

Я смог заставить злой глаз уйти, просто добавив этот маленький заголовок к сайту в IFrame (PHP решение):

header('P3P: CP="NOI ADM DEV COM NAV OUR STP"');

Не забудьте нажать ctrl + F5 , чтобы перезагрузить ваш сайт или Explorer все еще может показать злой глаз, несмотря на то, что он работает нормально. Это, вероятно, главная причина, почему у меня было так много проблем, чтобы получить его на работу.

Файл политики вообще не требовался.

Изменить: Я нашел хорошую запись в блоге, которая объясняет проблему с куки в IFrames. Он также имеет быстрое исправление в коде C #: Кадры, страницы ASPX и отклоненные файлы cookie

-121--1811477-

Вы можете сохранить отдельный INI-файл для каждого пользователя, хотя я не знаю, поддерживается ли это непосредственно WinAPI. По крайней мере, это делают многие приложения (например, TotalCommander ).

Обновление: по всей видимости, оно поддерживается API.

3
ответ дан 8 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

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