Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:

; Название раздела 1
; ==================

1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
1.3 ; Описание значения 3.

; Название раздела 2
; ==================
...

Абсолютный human-readable. Реально круто, без шуток.
28 дек 20, 23:10    [22256062]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav
PetroNotC Sharp
пропущено...
где
HRESULT hr1 = pChildNode2->get_nodeValue(&varValue);

Это вопрос или что?

Я не нашел в API то что показал выше - одной строкой получить значение или умолчание.
Не люблю бойлерплейт-код.
28 дек 20, 23:55    [22256084]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav
пропущено...

Это вопрос или что?

Я не нашел в API то что показал выше - одной строкой получить значение или умолчание.
Не люблю бойлерплейт-код.

Как-то так.
29 дек 20, 00:03    [22256092]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Где возврат строки? Где возврат default строки если там нечего читать?
Не видишь что код неравнозначный?
29 дек 20, 07:42    [22256142]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav,
Где возврат строки? Где возврат default строки если там нечего читать?
Не видишь что код неравнозначный?

Там какие-то нюансы связанные с описанием интерфейса COM объекта. Я не помню.
Вот пример сразу чтения текста в аттрибуте xml.
29 дек 20, 09:02    [22256150]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
В общем нет там такого
String s = reg.readKeyString(“isModal", "да")

И такого от Qt QSettings
QSettings *p = new QSettings(file, форматINIorXML)
int i = p->value(sKey, -1).toInt()

Хочешь XML внизу, хочешь ini....
Ну и -1 это удобство при чтении например положения окна на экране left, top, bottom...
29 дек 20, 10:37    [22256184]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
почему пишет в ветку Software\\Extra\\WOW6432Node, когда задана ветка CreateKey("Software\\Extra");
а при чтении читает из Software\\Extra
29 дек 20, 12:01    [22256264]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Дай полный путь ветки
29 дек 20, 12:04    [22256268]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp
Mizer73,
Дай полный путь ветки


Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ExtraMaster - куда записалось


как писалось:
TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		reg2->Access = KEY_ALL_ACCESS;
		try
		{
			if (!reg2->KeyExists("Software\\ExtraMaster\\")) {
				reg2->CreateKey("Software\\ExtraMaster\\");
				reg2->OpenKey("Software\\ExtraMaster\\", true);
				if (!reg2->ValueExists("Connect"))
					reg2->WriteBool("Connect", false);
				if (!reg2->ValueExists("kinde"))
					reg2->WriteBool("kinde", false);
				if (!reg2->ValueExists("pwd"))
					reg2->WriteString("pwd", "");
				if (!reg2->ValueExists("plz"))
					reg2->WriteString("plz", "");
				if (!reg2->ValueExists("svr"))
					reg2->WriteString("srv", "");
            }


Сообщение было отредактировано: 29 дек 20, 12:05
29 дек 20, 12:08    [22256276]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Mizer73
PetroNotC Sharp
Mizer73,
Дай полный путь ветки


Компьютер\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ExtraMaster - куда записалось


как писалось:
TRegistry* reg2 = new TRegistry(KEY_ALL_ACCESS);
		reg2->RootKey = HKEY_LOCAL_MACHINE;
		reg2->Access = KEY_ALL_ACCESS;
		try
		{
			if (!reg2->KeyExists("Software\\ExtraMaster\\")) {
				reg2->CreateKey("Software\\ExtraMaster\\");
				reg2->OpenKey("Software\\ExtraMaster\\", true);
				if (!reg2->ValueExists("Connect"))
					reg2->WriteBool("Connect", false);
				if (!reg2->ValueExists("kinde"))
					reg2->WriteBool("kinde", false);
				if (!reg2->ValueExists("pwd"))
					reg2->WriteString("pwd", "");
				if (!reg2->ValueExists("plz"))
					reg2->WriteString("plz", "");
				if (!reg2->ValueExists("svr"))
					reg2->WriteString("srv", "");
            }


копать сюда
https://docs.microsoft.com/ru-ru/windows/win32/api/winreg/nf-winreg-regdisablereflectionkey?redirectedfrom=MSDN
29 дек 20, 12:14    [22256279]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Нельзя сюда писать. Только админу.
HKEY_LOCAL_MACHINE
29 дек 20, 12:22    [22256289]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
petrav
Member

Откуда:
Сообщений: 2861
PetroNotC Sharp
petrav,
В общем нет там такого
String s = reg.readKeyString(“isModal", "да")

И такого от Qt QSettings
QSettings *p = new QSettings(file, форматINIorXML)
int i = p->value(sKey, -1).toInt()

Хочешь XML внизу, хочешь ini....
Ну и -1 это удобство при чтении например положения окна на экране left, top, bottom...

Значение по умолчанию прописывается в XML схеме. Заодно и провалидируешь документ.

На счёт DTD не уверен.

Тут прикол в том, что судя по документации видимо Майкрософт считает MSXML устаревшим. Типа гоу все на .NET.
29 дек 20, 12:27    [22256293]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp, к сожалению, мне надо сюда писать, т.к. использую красивые компоненты. И надо прописать лицензию.
29 дек 20, 12:39    [22256308]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,

сюда же пишут программы свои настройки. Почему я не могу для своей программы написать настройки для своей проги?

а эта лопата не работает
копать сюда
https://docs.microsoft.com/ru-ru/windows/win32/api/winreg/nf-winreg-regdisablereflectionkey?redirectedfrom=MSDN
29 дек 20, 12:41    [22256310]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
petrav,
Не. Схема это черезчур.
Удачи!
29 дек 20, 12:44    [22256317]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10925
Mizer73
Почему я не могу для своей программы написать настройки для своей проги?
Потому, что запись в HKLM требует не просто административных прав, а повышения привилегий.
29 дек 20, 12:44    [22256319]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73,
Ты раздели. Настройки пользователя и настройки лицензии.
Потом будет сообщение в вашей программе от вас.
: "вы не имеете админских прав. Установка прекращена!"
29 дек 20, 12:46    [22256320]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
PetroNotC Sharp,

с проверкой лицензии все хорошо. все настроено.
проблема одна - записать в реестр для 64 битных.
29 дек 20, 13:08    [22256351]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Basil A. Sidorov,
при первичном запуске под админом - все хорошо. все записывается. но в другую ветку для 32 битных.

// long f = RegDisableReflectionKey(HKEY_LOCAL_MACHINE);
long f = RegEnableReflectionKey(HKEY_LOCAL_MACHINE);
не работает
29 дек 20, 13:10    [22256354]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921
Тебе уже дали ссылку в разделе Windows. Далее ходи на описание флагов перенаправления,
использующихся при открытии ветки (и отсутствующих в Билдере).
Например, KEY_WOW64_32KEY.

Сообщение было отредактировано: 29 дек 20, 13:22
29 дек 20, 13:26    [22256389]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Mizer73
использую красивые компоненты. И надо прописать лицензию.

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

Posted via ActualForum NNTP Server 1.5

29 дек 20, 13:34    [22256398]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7650
Mizer73
PetroNotC Sharp,

с проверкой лицензии все хорошо. все настроено.
проблема одна - записать в реестр для 64 битных.

Мое имхо что странную прихоть ты придумал сам себе.
Если коммонент Не работает без админа и реестра рутового, то так и напиши здесь на форуме.
А так не интересно.
Удачи!
29 дек 20, 13:36    [22256400]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Mizer73
Member

Откуда: Питер
Сообщений: 251
Dimitry Sibiryakov

Mizer73
использую красивые компоненты. И надо прописать лицензию.

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

не запрещают, т.к. лицензия на "одно место программиста".
хочу уйти от отдельной установки пакета, т.к. сама программа не требует установочного пакета
29 дек 20, 14:12    [22256431]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Mizer73
лицензия на "одно место программиста".

И устанавливаться она должна на одном месте программиста. Её нельзя пихать в установку
программы, написанной этим программистом. Её нельзя устанавливать на двух местах одновременно.

Posted via ActualForum NNTP Server 1.5

29 дек 20, 14:43    [22256460]     Ответить | Цитировать Сообщить модератору
 Re: Запись в реестр  [new]
mayton
Member

Откуда: loopback
Сообщений: 51019
petrav
mayton
Он совершенно не human-readable.

У нас часто такой формат используется:

; Название раздела 1
; ==================

1.1 ; Описание значения 1.
-1.2 ; Описание значения 2.
1.3 ; Описание значения 3.

; Название раздела 2
; ==================
...

Абсолютный human-readable. Реально круто, без шуток.

Както чудно. С точки с запятой начинается комментарий?
29 дек 20, 15:01    [22256484]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
Все форумы / C++ Ответить