Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
 Аватар для KoFeMaH
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249

Работа с реестром(автозагрузка)

08.05.2009, 07:47. Показов 9191. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ув программисты при работе с автозагрузкой получилось ее сделать.т.е. записать строку в реестре в ключ run.программа теперь каждый раз как загружаю систему запускается.но проблема в том как удалить теперь эту строчку из ключа чтобы она не запускалась со стартом системы
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2009, 07:47
Ответы с готовыми решениями:

Работа с реестром.
:help:Пытаюсь сделать свой твик по ХРюшу,:huh:Помогите пожалуйста, ехе у меня почемуто запускаеться через раз, и то с ошибкой, и не могу...

Работа с реестром.
помогите плз найти, пишет error 6 ocured: void __fastcall TForm1::btnRestoreClick(TObject *Sender) { TCHAR szErrMsg; ...

Работа с реестром
Можете, пожалуйста, подсказать что придумать. Мне нужно в своей программе сделать разграничение возможностей в зависимости от...

21
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
08.05.2009, 08:12
покажи как записывал и я покажу как удалить
0
 Аватар для KoFeMaH
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
08.05.2009, 09:09  [ТС]
Цитата Сообщение от AntonChik Посмотреть сообщение
покажи как записывал и я покажу как удалить
C++
1
2
3
4
5
TRegistry *reg = new TRegistry();
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);
reg->WriteString(""Proj",Application->ExeName");
reg->CloseKey();
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
08.05.2009, 09:30
Попробуй изменить в 3 строке
C++
1
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVer sion\\Run",false);
0
 Аватар для KoFeMaH
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
08.05.2009, 09:32  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Попробуй изменить в 3 строке
C++
1
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVer sion\\Run",false);
идея хорошая=)Я тоже сначала так подумал.но нет.это значит что мы даем права на запись вроде=)
1
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
08.05.2009, 09:37
если быть точнее, то true означает, что если этой секции в реестре не существует, то мы е создаем.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
08.05.2009, 09:40
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от KoFeMaH Посмотреть сообщение
это значит что мы даем права на запись вроде=)
Это значит, что если указанного ключ отсутствует, то он будет создан.
А удалить можно следующим образом:
C++
1
2
3
reg->RootKey = HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);
reg->DeleteValue("Proj");
3
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
08.05.2009, 09:43
Лучший ответ Сообщение было отмечено как решение

Решение

вот запись

C++
1
2
3
4
5
TRegistry *reg = new TRegistry();
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);
reg->WriteString("Proj",Application->ExeName);
reg->CloseKey();
удаление для этого ключа:
C++
1
2
3
4
5
TRegistry *reg = new TRegistry();
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);
reg->DeleteValue("Proj");
reg->CloseKey();
Добавлено через 31 секунду
ой... не успел...
3
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
21.11.2009, 21:14
Парни! А теперь помогите еще и мне
У меня та же ситуация, добавил ключ в автозагрузку, а как программно отключить не знаю
Вот код которым я добавлял ключ в реестр:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
HKEY hKey;
   char szPath[0x100];
   GetModuleFileName(NULL, szPath, sizeof(szPath));
   RegCreateKeyEx(HKEY_LOCAL_MACHINE,
                    "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
                    NULL,
                    "",
                    REG_OPTION_NON_VOLATILE,
                    KEY_SET_VALUE,
                    NULL,
                    &hKey,
                    NULL);
 
   if (hKey)
   {
       RegSetValueEx(hKey, "Имя ключа", NULL, REG_SZ, (LPBYTE)szPath, strlen(szPath));
       RegCloseKey(hKey);
   }
Заранее Спасибо!
0
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
22.11.2009, 00:16
Rapsod, А его надо просто удалить
C
1
2
3
4
5
6
7
8
9
10
11
   HKEY hKey;
   RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                    "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
                    0,
                    KEY_EXECUTE,
                    &hKey);
 
   if (hKey) {
       RegDeleteKey(hKey, "Имя ключа");
       RegCloseKey(hKey);
   }
Добавлено через 16 минут
Скорее всего в 5-й строке надо поставить KEY_WRITE, так как KEY_EXECUTE прав на удвление может не дать.
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
22.11.2009, 14:10
Цитата Сообщение от АНК Посмотреть сообщение
Rapsod, А его надо просто удалить
C
1
2
3
4
5
6
7
8
9
10
11
   HKEY hKey;
   RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                    "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
                    0,
                    KEY_EXECUTE,
                    &hKey);
 
   if (hKey) {
       RegDeleteKey(hKey, "Имя ключа");
       RegCloseKey(hKey);
   }
Добавлено через 16 минут
Скорее всего в 5-й строке надо поставить KEY_WRITE, так как KEY_EXECUTE прав на удаление может не дать.
К сожалению ключ не удаляется, а ни с KEY_WRITE, а ни с KEY_EXECUTE...
Есть еще варианты? а то я с этим ключом уже неделю голову ламаю
0
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
22.11.2009, 14:58
Цитата Сообщение от Rapsod Посмотреть сообщение
К сожалению ключ не удаляется, а ни с KEY_WRITE, а ни с KEY_EXECUTE..
Ну хорошо, по какой причине не удаляется?
Ключ не окрывается?
Что возвращает RegOpenKeyEx? Попробуй RegOpenKey...
Что возвращает RegDeleteKey?

Почитать о функциях доступа к реестру можно здесь
http://w32api.narod.ru/
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
22.11.2009, 23:30
KoFeMaH, ты же уже задавал этот вопрос мы его решили сделать так
Вот решение твоей проблемы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TOptionsForm::Run_for_WindowsClick(TObject *Sender)
{
 if (Run_for_Windows->Checked)
 {
  reg->RootKey=HKEY_LOCAL_MACHINE;
  reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false);
  reg->WriteString(ExtractFileName(ChangeFileExt(Application->ExeName,"" )),Application->ExeName);
  reg->CloseKey();
 }
 
 else
 {
  reg->RootKey=HKEY_LOCAL_MACHINE;
  reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false);
  reg->DeleteValue(ExtractFileName(ChangeFileExt(Application->ExeName,"" )));
 }
Добавлено через 1 час 15 минут
Прошу прощение это сообщение адресовано Rapsod.
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
23.11.2009, 17:47
Цитата Сообщение от Sasha Посмотреть сообщение
KoFeMaH, ты же уже задавал этот вопрос мы его решили сделать так
Вот решение твоей проблемы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TOptionsForm::Run_for_WindowsClick(TObject *Sender)
{
 if (Run_for_Windows->Checked)
 {
  reg->RootKey=HKEY_LOCAL_MACHINE;
  reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false);
  reg->WriteString(ExtractFileName(ChangeFileExt(Application->ExeName,"" )),Application->ExeName);
  reg->CloseKey();
 }
 
 else
 {
  reg->RootKey=HKEY_LOCAL_MACHINE;
  reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false);
  reg->DeleteValue(ExtractFileName(ChangeFileExt(Application->ExeName,"" )));
 }
Добавлено через 1 час 15 минут
Прошу прощение это сообщение адресовано Rapsod.
Спасибо за помощь! Но у меня ошибку выбрасывает: [BCC32 Error] Unit1.cpp(535): E2451 Undefined symbol 'reg'
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
23.11.2009, 17:53
Так правильно и выбрасывает вверху пропиши


C++
1
#include "registry.hpp"
а потом глобально вот эту строку перед конструктором и всё будет норм

C++
1
2
3
4
5
6
TRegistry *reg = new TRegistry();
//---------------------------------------------------------------------------
__fastcall TOptionsForm::TOptionsForm(TComponent* Owner)
        : TForm(Owner)
{
}
0
Волшебник
 Аватар для Rapsod
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
29.11.2009, 13:05
Цитата Сообщение от Sasha Посмотреть сообщение
Так правильно и выбрасывает вверху пропиши


C++
1
#include "registry.hpp"
а потом глобально вот эту строку перед конструктором и всё будет норм

C++
1
2
3
4
5
6
TRegistry *reg = new TRegistry();
//---------------------------------------------------------------------------
__fastcall TOptionsForm::TOptionsForm(TComponent* Owner)
        : TForm(Owner)
{
}
ОГРОМНОЕ-ОГРОМНОЕ СПАСИБО!!!!!!!!!
ВСЕ ЗАРАБОТАЛО!!!!!!!!
0
OLEG291991
06.12.2009, 15:45
А как сделать так, чтобы в автозагрузку добавлялся файл из заданной папки?
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
06.12.2009, 16:16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Dialog->Execute())
        {
        TRegistry*reg=new TRegistry();
        reg->RootKey=HKEY_LOCAL_MACHINE;
        if(!reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",false))
                {
                ShowMessage("Не могу окрыть ветку Run");
                }
        reg->WriteString("Sender",Dialog->FileName);
        reg->CloseKey();
        delete reg;
 
        }
}
0
 Аватар для BARS1991
23 / 15 / 0
Регистрация: 16.11.2009
Сообщений: 332
10.12.2009, 18:59
А как записать в реестр путь к файлу? Например C:\ProgramFiles\.....
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
10.12.2009, 19:37
Ну насколько я помню есть функция ExtractFilePath(), именно она считывает путь к файлу а запихнуть в реестр можно при помощи WriteString
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2009, 19:37
Помогаю со студенческими работами здесь

Работа с реестром
Всем привет. Учусь работать с реестром. Накодил вот такое reg->RootKey= HKEY_CURRENT_USER; reg->OpenKey("Software",true); ...

Работа с реестром
пробую сделать такую штуку: regm->OpenKeyReadOnly("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Print\\Printers"); ...

Работа с реестром в C++ Builder
Вступление: Данный FAQ тестировался и писался на системе Windows XP SP2. Используемый компилятор: Borland C++ Builder 6.0. ...

Работа с реестром Виндовс. TRegistry
Мне необходимо реализовать простую программку для работы с реестром Виндовс, а точнее для работы с Автозагрузкой. --- Необходимо...

Работа с реестром и перемещение файла.
1) Не могу создать универсальный исполняемый файл exe, который можно было бы запускать на любом компе. Делаю вроде бы все по схеме: -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru