Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для rusack007
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161

Автозагрузка WinAPI

13.08.2015, 23:08. Показов 3689. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Продолжая тему, начатую в Списке процессов и пользователей, написал 2 функции: проверки наличия программы в автозагрузке в Run, а также добавления/удаления в реестр записи об автозагрузке в эту ветку:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "stdafx.h"
#include <windows.h>
//#include <tlhelp32.h>
#include <iostream>
using namespace std;
 
BOOL IsBoot()
{
    HKEY key;
    if ((RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_WRITE,&key)) == ERROR_SUCCESS)
    {
        if((RegGetValue(key, NULL, L"processExplorer",RRF_RT_REG_SZ, NULL, NULL, NULL)) == ERROR_SUCCESS) return TRUE;
        else return FALSE;
    }
    else cout << "A problem with RegOpenKeyEx() in IsBoot" << endl;
}
 
 
void DoUndoBoot(BOOL isBoot)
{
    HKEY key;
 
    if (isBoot == FALSE)
    {
        cout << "Would you like to add this application on boot? Y - to add. ";
        char* choiceFirstStep = new char;
        char choiceNextStep = 0;
        cin >> *choiceFirstStep;
        choiceNextStep = *choiceFirstStep;
        if (choiceNextStep == 'Y' || choiceNextStep == 'y')
        {
            if ((RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_WRITE,&key)) == ERROR_SUCCESS)
            {
                TCHAR path[MAX_PATH];
                GetModuleFileName(NULL,path,MAX_PATH);
                if ((RegSetValueEx(key,L"processExplorer",0,REG_SZ ,(LPBYTE) path, (wcslen(path) + 1) * sizeof (wchar_t))) != ERROR_SUCCESS)
                    cout << "A problem with RegSetValueEx()" << endl;
                RegCloseKey(key);
            }
            else cout << "A problem with RegOpenKeyEx() in DoUndoBoot" << endl;
        }
    }
    else
    {
        cout << "Would you like to remove this application from boot? Y - to remove. ";
        char* choiceFirstStep = new char;
        char choiceNextStep = 0;
        cin >> *choiceFirstStep;
        choiceNextStep = *choiceFirstStep;
        if (choiceNextStep == 'Y' || choiceNextStep == 'y')
        {
            if ((RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_WRITE,&key)) == ERROR_SUCCESS)
            {
                RegDeleteValue(key,L"processExplorer");
                RegCloseKey(key);
            }
            else cout << "A problem with RegOpenKeyEx() in DoUndoBoot" << endl;
        }
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    BOOL isBoot = IsBoot();
    DoUndoBoot(isBoot);
// Для примера пусть будет просто Hello, World!
    cout << "Hello, World!" << endl;
    system("pause");
    return 0;
}
Ошибок вроде как нет, но добавлять в автозагрузку упорно не желает. В чём косяк?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.08.2015, 23:08
Ответы с готовыми решениями:

Автозагрузка (C++, WINAPI)
У меня есть код для автозагрузки программы, но при включения пк ничего не происходит. То ли в коде проблема, то ли я совсем не то делаю....

Автозагрузка
Народ подскажите пожалуйста как прописать программу в автозагрузку? Пробовал,так: #include &lt;iostream&gt; #include...

Автозагрузка
Как мне добавить свою прогу в автозагрузку? Я знаю один код, только не знаю куда его писать, подскажите... HKEY hKey; char...

22
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
16.08.2015, 08:59
Студворк — интернет-сервис помощи студентам
Для Reg-функций не нужно смотреть GetLastError, они сами возвращают
соответствующий код ошибки.
1
Заблокирован
16.08.2015, 09:08
Возможно следует запускать из под админа, у меня все работает.
0
 Аватар для rusack007
22 / 22 / 9
Регистрация: 30.07.2015
Сообщений: 161
16.08.2015, 09:28  [ТС]
Ок, по поводу GetLastError ясно.

Да, при запуске из-под админа работает без нареканий.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.08.2015, 09:28

автозагрузка ч/з регистр
есть функция записи в регистр на автозагрузку. Решение строит, запускает, все работает, кроме нее. Просто не записывает и все. можете...

Автозагрузка и моя программа
Как в C++ добавить программу в автозагрзку после первого её запуска? Я гуглил и даже нашёл какой-то код, но он не работает. Если кому-то...

Автозагрузка программы с правами администратора
Написал программу, которую нужно запускать от имени администратора, чтобы она полноценно работала. Как ее так поставить в автозагрузку...

Автозагрузка на чистом WINAPI
Код: program Project1; uses Windows; {$R *.res} var myRegPath :String =...

Автозагрузка
Как прописать свою прогу в автозагрузку. И если есть названия исполняемых файлов в виде Project1.exe как узнать висят они в процессах или...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru