Форум программистов, компьютерный форум CyberForum.ru

Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? - C++

Восстановить пароль Регистрация
 
bl@ckpantera
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 5
08.11.2013, 01:39     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? #1
При перезагрузке данные занесённые программой в реестр удаляются. Как это изменить подскажи плис?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2013, 01:39     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись?
Посмотрите здесь:

C++ Как сделать так, чтобы данные в прорамму с экрана забивались автоматически?
Как сделать чтобы при создании массива его имя менялось? C++
Как сделать чтобы при задании только И. Ф. не требовалось вводить О C++
Как сделать чтобы программа при первом запуске добавлялась в автозагрузку? C++
Как сделать, чтобы при выводе на экран были пробелы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yami
 Аватар для Yami
3 / 1 / 0
Регистрация: 02.11.2013
Сообщений: 21
08.11.2013, 09:16     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? #2
Цитата Сообщение от bl@ckpantera Посмотреть сообщение
При перезагрузке данные занесённые программой в реестр удаляются. Как это изменить подскажи плис?
Не перезагружать
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5547 / 2561 / 233
Регистрация: 01.11.2011
Сообщений: 6,330
Завершенные тесты: 1
08.11.2013, 10:10     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? #3
bl@ckpantera, вам надо написать программу предотвращающую (блокирующую) это, или это происходит в вашей программе?
bl@ckpantera
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 5
08.11.2013, 21:57  [ТС]     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? #4
Цитата Сообщение от Yami Посмотреть сообщение
Не перезагружать
Шикарный совет, как я сразу не догадалась)

Добавлено через 4 минуты
Цитата Сообщение от SatanaXIII Посмотреть сообщение
bl@ckpantera, вам надо написать программу предотвращающую (блокирующую) это, или это происходит в вашей программе?
Программа отрабатывает, перезагружаю. Я впервые записываю данные в реестр с помощью программы, записынная инфо. нужна на вход другой программе, она вообще должна удалятся после перезагрузки или это баг?

SatanaXIII. Адрес: Дом там, где сердце. - Да, Вы романтик, как красиво звучит)
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
08.11.2013, 22:35     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? #5
Возможные варианты:
1) ваша программа запускается в "песочнице"
2) ваша прогрмма записывает данные не в тот раздел реестра
3) при записи в реестро возникают ошибки, которые вы не обрабатываете
4) ваша программа вообще не пишет в реестр
n) ....

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#define reg_run "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
// получение флага автозапуска
bool AutoRun() {
    HKEY keyAutorun = NULL;
    bool res = false;
    RegOpenKeyEx(HKEY_CURRENT_USER, reg_run, 0, KEY_READ, &keyAutorun);
    if (keyAutorun) {
        res = (RegQueryValueEx(keyAutorun, title,
                    0, NULL, NULL, NULL) == ERROR_SUCCESS);
        RegCloseKey(keyAutorun);
    }
    return res;
}
 
// установка атозапуска. возвращает успех операции
bool AutoRun(bool set ) {
    HKEY keyAutorun = NULL;
    bool res = false;
    RegOpenKeyEx(HKEY_CURRENT_USER, reg_run, 0, KEY_WRITE, &keyAutorun);
    if (keyAutorun) {
        if (set ) {
            char buff[MAX_PATH];
            DWORD len = GetModuleFileName(hApplication, buff, MAX_PATH);
            res = (RegSetValueEx(keyAutorun, title,
                    0, REG_SZ, (PBYTE)buff, len) == ERROR_SUCCESS);
        }
        else {
            res = (RegDeleteValue(keyAutorun, title) == ERROR_SUCCESS);
        }
        RegCloseKey(keyAutorun);
    }
    return res;
}
Этот код работает вплоть до Win 7, на 8ке не проверял
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
08.11.2013, 22:41     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? #6
Цитата Сообщение от bl@ckpantera Посмотреть сообщение
или это баг?
Скорее всего в твоей программе.
Ключи, записанные в реестр, не должны удаляться после перезагрузки. Возможно ты забываешь выполнить RegCloseKey или что-то в этом роде..
Yandex
Объявления
08.11.2013, 22:41     Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись?
Ответ Создать тему
Опции темы

Текущее время: 16:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru