Как запустить прогу при старте ?
И при этом в настройках пользователь мог отменить это.
По слухам которые доползли до меня нужно
гдето чегото писать в реестре.
Но где и как ?
Подскажите пожалуйсто.
Мне нужно чтоб программа запускалась при старте.
И при этом в настройках пользователь мог отменить это.
По слухам которые доползли до меня нужно
гдето чегото писать в реестре.
Но где и как ?
Подскажите пожалуйсто.
прописать в реестре имя проги и путь надо сюда
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\
Для этого в MFC кажись клас какой-то был:
о вспомнил.. CRegKey почитай в msdn описание на него..
В реестре по етому адресу ничего особенного
не нашол.
Может ктото может объяснить по лучше ?
Примером кода если можно.
Неа не понятно.
В реестре по етому адресу ничего особенного
не нашол.
Может ктото может объяснить по лучше ?
Примером кода если можно.
Ну, есть вариянт проще ярлык засунуть в папку автозагрузка... .\Document and Setting\AllUsers\Главное меню\Программы\Автозагрузка\... К тому же и юзер всегда эту гадость не мучаясь удалить сможет....
Ну, есть вариянт проще ярлык засунуть в папку автозагрузка... .\Document and Setting\AllUsers\Главное меню\Программы\Автозагрузка\... К тому же и юзер всегда эту гадость не мучаясь удалить сможет....
Я так и делал раньше.
Но сейчас меня этот вариант не устраивает. :x
Добавляешь по этому адресу строковое значение под названием MyCooolProgram (или DontSoCoolButMy) и записываешь в него путь к программе.
Пример кода обязятельно?
Неа не понятно.
В реестре по етому адресу ничего особенного
не нашол.
Может ктото может объяснить по лучше ?
Примером кода если можно.
на счет объяснений, я далеко не спец, но
нужно добавить в раздел реестра, который указал hell_admin запись, с value name: что-угодно, и с value data: командная строка, типа, как ты бы запускал приложение из Dos окна, т.е. полный путь и exe-name.
И при этом в настройках пользователь мог отменить это.
не ясен уровень пользователя. мин. пусть переименует каталог, в которой находится твоя прога, если не хочет с ним дело иметь. :D (sorry)
Если, всерьез, то пользователь мог бы дописать какой-то аргумент к командной строке. Но это в программе, нужно бы обработать.
Может быть, лучше в current user(или в соотв ветви users, если для не current), хотя можно и в mashine.
Добавляешь по этому адресу строковое значение под названием MyCooolProgram (или DontSoCoolButMy) и записываешь в него путь к программе.
Пример кода обязятельно?
Если можно.
Я пробовал так:
[COLOR=blue]
CWinApp *pApp=AfxGetApp();
pApp->WriteProfileString(_T("HKEY_CURRENT_USER\\Software\\"
"Microsoft\\Windows\\CurrentVersion\\Run")
,_T("RegTest")
,_T("C:\\RegTest.exe));[/COLOR]
Но неполучилось.
Наверно я чегото не понимю.
не ясен уровень пользователя. мин. пусть переименует каталог, в которой находится твоя прога, если не хочет с ним дело иметь. :D (sorry)
Я имел в виду работу с интерфейсом программы.
И все действия должны выпоняться самой программой, но не как не пользователем.
Она пишет или в .ini или в реестр, туда,
куда установила SetRegistryKey (смотри свой
InitInstance).
CRegKey в MFC я что-то не нашел (это ATL);
С помощью API это выглядит примерно так:
if(ERROR_SUCCESS==
RegCreateKeyEx(HKEY_CURRENT_USER,
_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),
0,0,0,KEY_WRITE,0,&key,0))
{
RegSetValueEx(key,_T("RegTest"),0,REG_SZ,(BYTE*)_T("C:\\RegTest.exe"),
sizeof(_T("C:\\RegTest.exe")));
RegCloseKey(key);
}
Удаляешь значение, соответственно RegDeleteValue.
на http://codeproject.com много примеров по реестру