Как добавить программу в автозагрузку windows используя c/c++?

Пользователь

от brook , в категории: Другие , 10 месяцев назад

Как добавить программу в автозагрузку windows используя c/c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от narciso , 10 месяцев назад

@brook 

Для добавления программы в автозагрузку Windows можно использовать функции из набора API Windows. Вот пример кода на C/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
#include <windows.h>
#include <shlobj.h>
#include <objbase.h>
#include <shellapi.h>
#include <string>

// Функция для добавления программы в автозагрузку
bool AddToStartup()
{
    std::string programPath = "ПУТЬ_К_ПРОГРАММЕ"; // Укажите путь к вашей программе

    // Получаем путь к папке автозагрузки
    char startupPath[MAX_PATH];
    if (SHGetFolderPathA(NULL, CSIDL_STARTUP, NULL, 0, startupPath) != S_OK)
    {
        return false;
    }

    // Создаем ярлык для программы в папке автозагрузки
    std::string shortcutPath = std::string(startupPath) + "\НАЗВАНИЕ_ПРОГРАММЫ.lnk"; // Укажите имя файла ярлыка
    CoInitialize(NULL);
    IShellLinkA* shellLink;
    if (CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&shellLink) != S_OK)
    {
        CoUninitialize();
        return false;
    }
    shellLink->SetPath(programPath.c_str());
    IPersistFile* persistFile;
    if (shellLink->QueryInterface(IID_IPersistFile, (void**)&persistFile) != S_OK)
    {
        shellLink->Release();
        CoUninitialize();
        return false;
    }
    if (persistFile->Save(shortcutPath.c_str(), TRUE) != S_OK)
    {
        persistFile->Release();
        shellLink->Release();
        CoUninitialize();
        return false;
    }
    persistFile->Release();
    shellLink->Release();
    CoUninitialize();

    return true;
}

int main()
{
    if (AddToStartup())
    {
        printf("Программа успешно добавлена в автозагрузку
");
    }
    else
    {
        printf("Ошибка добавления программы в автозагрузку
");
    }

    return 0;
}


В коде необходимо заменить значения ПУТЬ_К_ПРОГРАММЕ на полный путь к вашей программе, а НАЗВАНИЕ_ПРОГРАММЫ на желаемое имя ярлыка. После компиляции и запуска программы, она добавит себя в папку автозагрузки Windows.

Пользователь

от eryn.rodriguez , 3 месяца назад

@brook 

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