Re[3]: Запись в реестр Windows - права ограниченной записи
От: Sergei I. Gorelkin Россия  
Дата: 11.05.05 10:51
Оценка: 1 (1)
Здравствуйте, Vedern, Вы писали:

<skipped>

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

С файлами история примерно та же — в винде попросту нет такой папки, в которой можно (не изменяя безопасность) создать доступный всем на запись файл (во всяких там Shared Documents все могут создавать файлы, но изменять "чужие" файлы нельзя). Была даже такая больная идея: каждый юзер имеет в "общей" папке свой файл, куда и записывает информацию, но читает ее из файла с наиболее поздней датой изменения. Но, из принципа "не плоди сущностей без необходимости" лучше таки разобраться с правами доступа.
Запись в реестр Windows - права ограниченной записи
От: Vedern  
Дата: 10.05.05 15:56
Оценка:
Создаю или открываю ключ в реестре:

LONG lRes;
HKEY hkSub = NULL; //pointer to the key to be created or opened
DWORD dwDisposition;


lRes = RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\MY_KEY", 0, "", 0,
KEY_QUERY_VALUE | KEY_SET_VALUE, NULL, &hkSub, &dwDisposition);

Пока я запускаю приложение как администратор, все прекрасно работает.
Когда запускаюсь с ограниченной учетной записи (Windows XP), не получается ни создать, ни открыть ключ.

RegCreateKeyEx выдает код завершения 5.

А мне нужно, чтобы приложение писало и читало из реестра под любым пользователем.
Как быть, помогите
Re: Запись в реестр Windows - права ограниченной записи
От: Аноним  
Дата: 10.05.05 16:06
Оценка:
>А мне нужно, чтобы приложение писало и
> читало из реестра под любым пользователем.
>Как быть, помогите

Сменить ветку на CurrentUser — LocalMachine, AFAIK, доступно только админу.
Re[2]: Запись в реестр Windows - права ограниченной записи
От: Vedern  
Дата: 10.05.05 17:18
Оценка:
Здравствуйте, Аноним, Вы писали:

>>А мне нужно, чтобы приложение писало и

>> читало из реестра под любым пользователем.
>>Как быть, помогите

А>Сменить ветку на CurrentUser — LocalMachine, AFAIK, доступно только админу.


Да, в CurrentUser записать получается. Но это не решает задачи, тк у каждого пользователя будет свое значение ключа.
Нужно чтобы независимо от пользователя (учетной записи) все действия записывались в один ключ.
Impersonate different users, как говорится.

Может попробовать через шеловскую функцию SHRegCreateUSKey ? Хотя че-то я сомневаюсь
Re[3]: Запись в реестр Windows - права ограниченной записи
От: acronim  
Дата: 10.05.05 17:28
Оценка:
V>Нужно чтобы независимо от пользователя (учетной записи) все действия записывались в один ключ.
V>Impersonate different users, как говорится.

V>Может попробовать через шеловскую функцию SHRegCreateUSKey ? Хотя че-то я сомневаюсь

1) Можеш попробовать запускать программу от имени администратора (отображать окно авторизации админитсратора, далее CreateProcessAsUser)
2) Ище вариант написать малюсенький сервис, работающий под LocalSystem. Сервис будеш запускать вместе с ОС или вручную, а из приложений под залогинившимися пользователями устанавливать связь с сервисом и передавать ей данные для записи в реестр.
3) Писать в файл.
Все должно быть просто
Re[3]: Запись в реестр Windows - права ограниченной записи
От: Stanky  
Дата: 10.05.05 17:28
Оценка:
> Но это не решает задачи, тк у каждого пользователя будет свое значение ключа.
>
В этом-то и вся фишка!!!

> Нужно чтобы независимо от пользователя (учетной записи) все действия

> записывались в один ключ.
>
Тогда храни всё в файле или открывай ключ только на чтение — доступ на чтение на сколько я помню есть у всех!!!

> Хотя че-то я сомневаюсь

>
Я тоже!!!
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[4]: Запись в реестр Windows - права ограниченной записи
От: Stanky  
Дата: 10.05.05 17:31
Оценка:
> 1) Можеш попробовать запускать программу от имени администратора
> (отображать окно авторизации админитсратора, далее CreateProcessAsUser)
>
Жуть!!!

> 2) Ище вариант написать малюсенький сервис, работающий под LocalSystem.

> Сервис будеш запускать вместе с ОС или вручную, а из приложений под
> залогинившимися пользователями устанавливать связь с сервисом и
> передавать ей данные для записи в реестр.
>
Ещё страшнее!!!

> 3) Писать в файл.

>
Согласен!!!
Posted via RSDN NNTP Server 1.9
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[4]: Запись в реестр Windows - права ограниченной записи
От: AndrewJD США  
Дата: 10.05.05 18:06
Оценка:
Здравствуйте, acronim, Вы писали:


A>2) Ище вариант написать малюсенький сервис, работающий под LocalSystem. Сервис будеш запускать вместе с ОС или вручную, а из приложений под залогинившимися пользователями устанавливать связь с сервисом и передавать ей данные для записи в реестр.


А как же безопасность?

A>3) Писать в файл.

Наверное самое оптимальное решение в данном случае?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.