Как запустить приложение в Windows при запуске в Win32 API с использованием Visual C ++ - PullRequest
2 голосов
/ 12 ноября 2009

У меня есть приложение Window (win32 API) в Visual C ++. Я не использую MFC. Я должен запустить свое приложение при запуске Windows. Я использую Windows 7 и Visual Studio 2008. Может ли кто-нибудь помочь мне в решении вышеуказанной задачи? Заранее спасибо.

Ответы [ 7 ]

6 голосов
/ 03 июня 2013

Вот пример кода:

HKEY hkey = NULL;
RegCreateKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);
RegSetValueEx(hkey, L"myapp", 0, REG_SZ , (BYTE*)path, (wcslen(path)+1)*2);
2 голосов
/ 12 ноября 2009

Самый простой способ - создать раздел реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

(Вставьте код в вашу программу установки, чтобы добавить ключ.)

Если вы создадите его в HKEY_LOCAL_MACHINE, оно будет применяться ко всем пользователям машины. Если вы создадите его в HKEY_CURRENT_USER, программа запустится автоматически при запуске только для этого пользователя.

1 голос
/ 16 декабря 2014
CString csPath ="your path";
HRESULT hres =  RegCreateKey(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);
hres = RegSetValueEx(hkey, L"your app", 0, REG_SZ , (BYTE*)csPath.GetBuffer(), (wcslen(csPath)+1)*2);
1 голос
/ 21 августа 2010

Если вы создаете запись реестра в HKEY_LOCAL_MACHINE, запуск приложения будет принудительным для всех пользователей на локальном компьютере. Запишите записи под ключом HKEY_CURRENT_USER, чтобы настроить таргетинг только на текущего зарегистрированного (активного) пользователя при запуске этого приложения.

1 голос
/ 12 ноября 2009

Посмотрите на автозапуск от SysInternals (сейчас Microsoft). Он покажет вам, как Windows может запустить процесс. Вы захотите проверить вкладку Вход в систему, которая показывает несколько параметров файла и реестра, которые могут позволить вам начать работу при входе в систему. Службы и драйверы запускаются при запуске системы (не требуется вход в систему). Bootexecute позволяет запускать вещи во время загрузки, что, вероятно, не то, что вы хотите.

Остальные вкладки показывают, как подключиться к другим системным процессам для загрузки вашего кода. Неудивительно, что Windows созрела для авторов вредоносных программ, особенно если вы работаете от имени пользователя root.

1 голос
/ 12 ноября 2009

Просто добавьте его в ключ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run в реестре.

0 голосов
/ 12 ноября 2009

Не знаю о Win32, но как насчет простого ярлыка для вашей программы:

C: \ Documents and Settings \\ Пуск Меню \ Программы \ Автозагрузка

(или использовать всех пользователей вместо ПОЛЬЗОВАТЕЛЯ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...