Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Xeror
0 / 0 / 1
Регистрация: 23.02.2015
Сообщений: 108
1

Добавление в автозагрузку

07.09.2015, 13:42. Просмотров 1113. Ответов 14
Метки нет (Все метки)

Код автозагрузки:
C++
1
2
3
4
5
6
7
8
9
10
char autorun[255] = "C:\\KFX\\Project.exe";
DWORD dwtype = 0;
DWORD dwBufsize = sizeof(autorun);  
TCHAR szpath[MAX_PATH];
HKEY hKeys;
if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL))
        {
            RegSetValueEx(hKeys, L"MyProgram", 0, REG_SZ, reinterpret_cast<const BYTE*>(&autorun), sizeof(autorun));
            RegCloseKey(hKeys);
        }
В автозагрузке пишет это:
C++
1
Yes HKCU:Run    MyProgram       㩃坜湩潤獷д*њеЎ†еЃњжЅІж•Єз‘Јж”®ж•ё
(Вместо пути иероглифы)

Подскажите в чем проблема
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2015, 13:42
Ответы с готовыми решениями:

Добавление программы в реестр (Автозагрузку) | RegSetValueEx
Приветствую, уважаемые пользователи cyberforum.ru! У меня проблема, не...

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

Неудается добавить в автозагрузку!
Привет всем! Такая проблема. Пытаюсь средствами С++ добавить прогу в...

Как добавить программу в автозагрузку?
Здравствуйте. Мне необходимо добавить свою программу в автозагрузку. Чтобы не...

Не получается добавить программу в автозагрузку
BOOL AutoStart::StartUP() { HKEY hKey = NULL; DWORD dwType = REG_SZ;...

14
Игорь1986
121 / 114 / 57
Регистрация: 08.09.2014
Сообщений: 1,047
Завершенные тесты: 1
07.09.2015, 14:05 2
Покажи скрин где пишет, пока все абстрактно
0
Raali
647 / 350 / 75
Регистрация: 06.07.2013
Сообщений: 1,123
Завершенные тесты: 1
07.09.2015, 14:09 3
Цитата Сообщение от Xeror Посмотреть сообщение
reinterpret_cast<const BYTE*>(&autorun)
здесь скорее всего ошибка

Добавлено через 46 секунд
wchar_t autorun[255] = L"C:\\KFX\\Project.exe";
RegSetValueEx(hKeys, L"MyProgram", 0, REG_SZ, autorun, sizeof(autorun));
0
nmcf
6514 / 5743 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
07.09.2015, 14:10 4
autorun сделай wchar_t. Всё должно быть Unicode.
0
Xeror
0 / 0 / 1
Регистрация: 23.02.2015
Сообщений: 108
07.09.2015, 14:12  [ТС] 5
Игорь1986,
Добавление в автозагрузку
0
Xeror
0 / 0 / 1
Регистрация: 23.02.2015
Сообщений: 108
07.09.2015, 14:14  [ТС] 6
Raali,

без преобразования выдает ошибку(autorun это char а там нужно BYTE)
0
Raali
647 / 350 / 75
Регистрация: 06.07.2013
Сообщений: 1,123
Завершенные тесты: 1
07.09.2015, 14:17 7
а если оставить преобразование но autorun оставить wchar_t
0
Xeror
0 / 0 / 1
Регистрация: 23.02.2015
Сообщений: 108
07.09.2015, 14:18  [ТС] 8
Raali,
C++
1
BYTE autorun[255] = "C:\\KFX\\Project.exe";
C++
1
RegSetValueEx(hKeys, L"MyProgram", 0, REG_SZ, autorun, sizeof(autorun));
ошибки нет но толку все равно ноль
0
Raali
647 / 350 / 75
Регистрация: 06.07.2013
Сообщений: 1,123
Завершенные тесты: 1
07.09.2015, 14:20 9
не, я про то что оставить каст в BYTE
но autorun сделать wchar_t[]
0
Xeror
0 / 0 / 1
Регистрация: 23.02.2015
Сообщений: 108
07.09.2015, 14:25  [ТС] 10
Raali,
C++
1
    3   IntelliSense: значение типа "const char [19]" нельзя использовать для инициализации сущности типа "wchar_t [255]"
0
Raali
647 / 350 / 75
Регистрация: 06.07.2013
Сообщений: 1,123
Завершенные тесты: 1
07.09.2015, 14:27 11
Лучший ответ Сообщение было отмечено Xeror как решение

Решение

C++
1
wchar_t autorun[255] = L"C:\\KFX\\Project.exe";
1
Xeror
0 / 0 / 1
Регистрация: 23.02.2015
Сообщений: 108
07.09.2015, 14:30  [ТС] 12
Raali,
Помогло))Спасибо)
0
Игорь1986
121 / 114 / 57
Регистрация: 08.09.2014
Сообщений: 1,047
Завершенные тесты: 1
07.09.2015, 14:54 13
Во 2 строке DWORD dwtype =REG_SZ;
в 8 строке RegSetValueEx(hKeys, _T("MyProgram"), 0, &dwtype, (BYTE*)autorun, &dwBufsize);
В принципе и это должно быть норм

Добавлено через 13 минут
Ах да в 1 строчке еще надо _TCHAR autorun[255] = "C:\\KFX\\Project.exe";

Добавлено через 28 секунд
Попробуй,
0
Avazart
Эксперт С++
7756 / 5662 / 554
Регистрация: 10.12.2010
Сообщений: 25,664
Записей в блоге: 17
07.09.2015, 15:43 14
Проще и лучше создавать ярлык в папке "Автозагрузка"
0
Игорь1986
121 / 114 / 57
Регистрация: 08.09.2014
Сообщений: 1,047
Завершенные тесты: 1
07.09.2015, 16:00 15
Ну люди разные, каждому свой флаг
0
07.09.2015, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2015, 16:00

Автоматическое помещение программы в автозагрузку
Здравствуйте. Помогите плс. Как на языке С++ сделать чтобы программа...

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

Как сделать чтобы программа при первом запуске добавлялась в автозагрузку?
Как сделать чтобы программа при первом запуске добавлялась в автозагрузку? А...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru