|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.01.2012, 22:19 | #1 |
Пользователь
Регистрация: 01.10.2010
Сообщений: 24
|
RegEnumValue не находит значения в HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows\CurrentVersion\Run
Здравствуйте, форумчане!
Хочу написать программку, чтобы читала значения регистров из HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows\CurrentVersion\Run. Вот код, которым пытаюсь это сделать: Код:
Я смотрел regedit.exe там значения есть. Там у меня НОД32 прописан. Я думал, может это антивир как-то скрывает свое значение регистра. Создал свое значение, оно его тоже не видит. Хотя regedit.exe и еще одна программка видит, мной созданное, значение. Я скачал исходники regedit.exe, просмотрел их, вроде, я сделал все как там. Но он видит эти значения, а моя программа нет!!! В чем может быть проблема, подскажите пожалуйста!! Может дело в каких-то правах доступа?? Дело в том, что даже RegQueryInfoKey() пишет, что число значений равно 0... Я в растеряности... Последний раз редактировалось gagarin0; 16.01.2012 в 00:01. |
15.01.2012, 22:30 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
может быть дело в том что вы открываете HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows\CurrentVersion\RunOnce?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
16.01.2012, 00:01 | #3 |
Пользователь
Регистрация: 01.10.2010
Сообщений: 24
|
Нет... Сорри, это я пробовал разные варианты... видимо осталось... я исправил тему..
|
17.01.2012, 00:46 | #4 |
Пользователь
Регистрация: 01.10.2010
Сообщений: 24
|
Решение нашел... тему можно закрывать.
Если кому интересно: Оказывается все дело было в том, что у меня 64-битная машина. При этом на 64-битных Windows, часть записей в реестре хранятся отдельно для 32-разрядных приложений и 64-разрядных приложений и отображаются в отдельном логического представление реестра с помощью registry redirector и registry reflection: http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx Поэтому мой запрос на HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows\CurrentVersion\Run оно автоматически перенаправляло на HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432 Node\Microsoft\Windows\CurrentVersi on\Run. Там у меня не было никаких записей, поэтому RegQueryInfoKey() и RegEnumValue() ничего и не находили. Поэтому, для просмотра обоих регистров можно использовать флаги доступа KEY_WOW64_64KEY и KEY_WOW64_32KEY при открытии регистра: Код:
Можно использовать еще такую конструкцию: Код:
|
17.01.2012, 00:50 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа, которая находит в массиве значения, повторяющиеся два и более раз | yugik | Общие вопросы C/C++ | 6 | 08.03.2013 18:14 |
записываю значение в regedit а файл C:\Windows\System32\config\software не меняется | goluzov | Win Api | 4 | 26.11.2011 16:08 |
Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран | -KAZtrel- | Помощь студентам | 1 | 18.11.2011 23:25 |
Написать программу, которая находит в массиве значения, повторяющиеся два и более раз, и показывает их на экран | -KAZtrel- | Помощь студентам | 2 | 18.11.2011 22:29 |
Windows7,не работает HKEY_LOCAL_MACHINE\SOFTWARE\Microso ft\Windows NT\CurrentVersion\Windows\AppInit_D LLs | ассемблер123 | Windows | 0 | 22.04.2010 18:30 |