Во время установки, куда писать данные о своей программе? LOCAL_MACHINE/Software? CURRENT_USER? А если с per-user лицензиями, а пользователей на компе может быть несколько?
Не нагуглил ничего толкового.
#1
17:39, 14 мар 2012
Реестр — зло, программы пишущие туда — поборники зла.
#2
18:07, 14 мар 2012
#3
18:09, 14 мар 2012
Nomad
> А если с per-user лицензиями, а пользователей на компе может быть несколько?
Что за программа такая? Ну, пиши в CURRENT_USER, пусть каждый пользователь себе сам лицензию ставит.
#4
18:25, 14 мар 2012
Если нет админовских прав, только в CURRENT_USER и позволено будет писать.
А в принципе, писать можно куда угодно, чем и пользуются всякие злостные програмулины. Зафигачат свои параметры в такое место, где их хрен найдешь, если не позаботиться о мониторинге изменений реестра в процессе их установки.
#5
6:03, 15 мар 2012
Zab
Просто было бы логично, если бы для разных нужд были бы разные разделы в реестре.
Как прописать программу в автозапуск Windows. 3 Способа
Хотя бы общие рекомендации есть, или все действительно пишут куда попало?
nes
Каковы альтернативы?
kipar
Тулзы для девелоперских контор.
#6
6:07, 15 мар 2012
что мешает хранить базу данных с настройками и всей нужной инфой, как делает, например, AIMP? преимущества очевидны — portable’ность программы.
#7
8:11, 15 мар 2012
Nomad
> А если с per-user лицензиями, а пользователей на компе может быть несколько?
Ты реально хочешь найти на этом форуме ответ на такой серьёзный вопрос? Обычно когда возникают такие проблемы люди начинают гуглить в поисках серьёзных ответов. MSDN пока что не закрыли, опять же.
#8
12:36, 15 мар 2012
#9
12:45, 15 мар 2012
Nomad
>Каковы альтернативы?
Не писать ничего в реестр — очевидно же )
- daemolisher
- Постоялец
#10
13:13, 15 мар 2012
Nomad
> Во время установки, куда писать данные о своей программе?
это какие данные?
это те, благодаря которым, программа появляется в списке «Установка и удаление программ»?
вообще для простейших случаев лучше использовать NSIS
насколько помню в комплекте есть готовые примеры
Nomad
> А если с per-user лицензиями, а пользователей на компе может быть несколько?
Обычно для игр используют Per Device
И вообще, сели программа умеет отличать пользователей, то собственно какая разница куда сохранять?
То есть просто создать для каждого пользователя отдельный файл лицензии.
Эти файлы положить в папку программы.
Тогда в реестр ничего писать не надо будет.
#11
13:26, 15 мар 2012
daemolisher
> Эти файлы положить в папку программы.
Фейл. Для подобных вещей предусмотрены папки AppData в пользовательском каталоге. А в папку программы писать будет запрещено.
Вот о таком я и хотел донести, когда писал, что здесь на такие вопросы по-нормальному не ответят.
Как добавить программу в автозагрузку через реестр
- daemolisher
- Постоялец
#12
20:07, 15 мар 2012
daemolisher
> Фейл. Для подобных вещей предусмотрены папки AppData
наоборот всё)))
писать в папку AppData — это и есть фейл, так как неизвестно есть ли права на это у пользователя
а вот так как я предлагаю — работает лучше, так как при установке программы (даже если просто распаковать из архива в новую папку)
во вновь созданной папке будут присвоены права на запись в неё
исключения правда есть, например папка Program Files в Windows Vista/7
лучше избегать установки игры в эту папку
ставить например в C:Games
#13
21:04, 15 мар 2012
Nomad
> CURRENT_USER?
по идее да.
Nomad
> лицензиями
я бы не стал пользоваться реестром для решения данной проблемы, и. да.. прислушайтесь к остальным
#14
21:13, 15 мар 2012
daemolisher
> писать в папку AppData — это и есть фейл, так как неизвестно есть ли права на
> это у пользователя
У пользователя может не быть прав писать в СВОЮ AppData?~ Мда.
Дальше вообще ерунда написана.
Источник: gamedev.ru
Как зарегистрировать библиотеку DLL в Windows
Установка игры или тяжелого приложения подразумевает автоматическую инсталляцию и регистрацию необходимых библиотек DLL в операционной системе Windows. DLL – это динамические библиотеки, обращение к которым многократно может идти от нескольких приложений. Если при попытке обращения со стороны игры или программы к определенной библиотеке DLL возникла ошибка, пользователь увидит сообщение «точка входа dllregisterserver не найдена» или «запуск невозможен, отсутствует .dll файл». Эти и другие ошибки, сообщающие о проблемах при обращении к динамической библиотеке, можно устранить, если самостоятельно зарегистрировать нужный файл DLL в Windows.
Почему возникает ошибка при обращении к DLL
Библиотеки DLL добавляются в операционную систему при обновлении Windows и при установке приложений. Исходя из этого, можно выделить следующие основные причины, почему возникает ошибка, сообщающая об отсутствии или проблемах с DLL файлом:
- DLL библиотека не была установлена. Причин этому может быть две – Windows не обновлен до актуальной версии, а библиотека поставляется с одним из последних обновлений, или игра/приложение при установке по некоторым причинам не произвела инсталляцию и регистрацию новых библиотек DLL.
Обратите внимание: Чаще всего в установочные файлы приложения включены все необходимые библиотеки DLL, и разработчики не надеются, что на компьютере уже ранее были установлены необходимые компоненты. - Повреждение библиотек DLL. Данная проблема чаще всего возникает, если библиотеки DLL были повреждены вирусным программным обеспечением или неосторожными действиями пользователя, например, внесением изменений в реестр, которые привели к повреждению динамических библиотек.
Большая часть библиотек DLL устанавливается на компьютер вместе с DirectX, поэтому если при установке игры или приложения возникает предложение обновить/установить DirectX, от него не нужно отказываться, иначе велик риск появления ошибки «запуск невозможен, отсутствует .dll файл».
Как зарегистрировать DLL в Windows
Если по некоторым причинам в Windows отсутствует библиотека DLL, необходимая для запуска игр и приложений, пользователь может самостоятельно ее зарегистрировать. Сделать это возможно двумя способами, предварительно загрузив на компьютер необходимую библиотеку DLL.
Регистрация DLL с помощью командной строки
Чтобы зарегистрировать имеющуюся на компьютере библиотеку DLL через командную строку, проделайте следующие действия:
- Запустите командную строку от имени администратора;
- В открывшемся окне пропишите команду:
regsvr32.exe путь_к_библиотеке_DLL
Вместо «путь_к_библиотеке_DLL» напишите полный путь до библиотеки, например: C:/windows/system32/comctl32.dll
Нажмите Enter, после чего произойдет регистрация библиотеки DLL.
Регистрация DLL с помощью строки «Выполнить»
Регистрация DLL через строку «Выполнить» практически ничем не отличается от действий с командной строкой. Пользователю необходимо:
- Открыть строку «Выполнить», нажав на клавиатуре сочетание клавиш Windows+R;
- Откроется окно, в котором нужно прописать команду:
regsvr32.exe путь_к_библиотеке_DLL
Далее нажмите «ОК», после чего произойдет регистрация библиотеки DLL.
Что делать, если не удается зарегистрировать библиотеку DLL
Возможна ситуация, когда Windows выдаст ошибку на команду по регистрации библиотеки, в которой указано, что модуль загружен, но точка входа DllRegisterserver не найдена. Вероятны и другие вариации схожих ошибок, из-за которых не удается зарегистрировать библиотеку DLL. Возникают такие ошибки по следующим причинам:
- Ряд библиотек DLL не предназначены для регистрации, и в них отсутствует подобная возможность;
- Библиотека уже зарегистрирована системой. Если возникают ошибки при обращении к ней, вероятнее всего она заражена вирусом или повреждена;
- Неправильный DLL файл. Возможны ситуации, когда DLL-файлы изначально повреждены или не содержат в себе нужных компонентов;
- DLL не совместим с текущей версией Windows.
Если возникают ошибки при попытке регистрации библиотеки DLL, первым делом нужно попробовать загрузить официальный компонент от поставщика, чтобы исключить вероятность файла-«пустышки». Для этого потребуется воспользоваться поисковой системой и найти, к какому компоненту системы относится проблемный DLL.
В редких ситуациях проблемы с регистрацией библиотеки DLL могут возникать, если она не находится в одной папке с исполняющим файлом .exe компонента или приложения. В таком случае нужно переместить библиотеку в папку с исполняющим файлом и попробовать вновь ее зарегистрировать.
Источник: okeygeek.ru
3 способа регистрации библиотеки DLL для Win 10 x64 при ошибке regsvr32
После активации дополнительно установленных программ на персональное устройство (стационарное, портативное) пользователи могут столкнуться с разного рода неполадками. Если на мониторе ПК отобразилось уведомление о том, что обнаружена ошибка regsvr32 и необходимо провести регистрацию дополнительного файла DLL для блока Win10 х64, юзер не сможет завершить текущие операции и действия. Нужно проверить устройство и устранить сбой.
Как зарегистрировать файл DLL в Windows 10
Существует несколько вариантов решения проблемы, связанной с регистрацией документа DLL в операционной системе Windows 10. Начинать можно с любого подходящего способа. Если один не сработал, переходят к следующему.
С использованием «regsvr32.exe» в окне «Выполнить»
- вызвать рабочее поле, используя комбинацию горячих клавиш «Win» и «R», либо через раздел «Пуск»;
- в пустую строку ввести команду и путь регистрации необходимого файла: exe C:WindowsSystem32dllname.dll;
- подтвердить запрос кнопкой «ОК» или «Enter».