| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Добавление в автозаргрузку (реестр) |
| Автор: lamber 12.7.2011, 17:19 | ||
Провозился час с чем-то не могу понять в чем дело, вроде все делаю правильно, но ключ так и не записывается в реестр посмотрите что делаю не так. Тестил на Win7
|
| Автор: xvr 12.7.2011, 19:26 |
| Запись в HKEY_LOCAL_MACHINE это привилегированное действие. Непонятно, как у вас вообще RegOpenKeyExA отработала. Проверьте, что возвращает RegSetValueExA |
| Автор: ASMatic 12.7.2011, 21:01 |
| lamber, GetLastError() нужно юзать....хотя бы его и не будет дурацких вопросов) |
| Автор: lamber 12.7.2011, 23:01 |
| Проверял RegSetValueExA тоже возвращает ERROR_SUCCESS. Осталось протестить GetLastError |
| Автор: volatile 12.7.2011, 23:27 |
| У 7 есть одна нехорошая вещь, она виртуализирует некоторые пути на диске, и некоторые ветки реестра. так что ошибки может не быть, просто она запишет не туда куда вы пишите, а в виртуальную ветку. Не гарантирую что это именно так, но вероятность есть. |
| Автор: GremlinProg 13.7.2011, 06:48 |
| на x64 машине ветка SOFTWARE при эмуляции x86 редиректится в ветку SOFTWARE/Wow6432Node, так что, ежели надо записать раздел для 64-разрядных приложений, надо компилировать 64-разрядный образ, либо использовать правильный контекст вызова: http://msdn.microsoft.com/en-us/library/aa393067(v=vs.85).aspx |
| Автор: lamber 13.7.2011, 11:38 |
| 2volatile и 2GremlinProg Истинна где-то у вас т.к. GetLastError() возвращает 0, но значения не установливаются и не читаются значения из реестра. GremlinProg машина и правда x64, не поможешь переделать под код который я привел т.к. я не совсем понял что требуется сделать в той ссылке что ты привел. volatile как проверить твое предположение ? |
| Автор: xvr 13.7.2011, 11:44 |
| Смотрите http://msdn.microsoft.com/en-us/library/aa965884%28v=VS.85%29.aspxи http://msdn.microsoft.com/en-us/library/ms724072%28v=VS.85%29.aspx |
| Автор: lamber 13.7.2011, 13:42 | ||
| Сенкс вы очень крутые типы))) Действительно Win 7 все перекидывает в ветку WoW6432Node Привожу рабочий код
Как видно из кода нужно всего лишь добавить соответствующий ключ KEY_WOW64_64KEY и все будет))) Спасибо всем кто откликнулся. |