програма которая записывает себя в автозагрузку

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Decus6
Сообщения: 2
Зарегистрирован: 13 апр 2009, 00:27

Делаю програму-шутку. Но не знаю как зделать что бы она записывала себя в атозагрузку. может кто поможет. вот исходник
Вложения
ffff.zip
(30.9 КБ) 23 скачивания
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Вот код, надеюсь сообразишь что к чему и куда вставлять.

Код: Выделить всё

include \masm32\include\advapi32.inc
includelib \masm32\lib\advapi32.lib

InstallAutorun PROTO

.data
	szAutoKey db "Software\Microsoft\Windows\CurrentVersion\Run",0

.code

;Функция InstallAutorun
;установка автозагрузки программы
InstallAutorun proc
	LOCAL szBuf[MAX_PATH]:BYTE
	LOCAL hKey :D WORD
	; раскомментировать одну из двух следующих строк:
	;invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,addr szAutoKey,0,KEY_WRITE,addr hKey
	invoke RegOpenKeyEx,HKEY_CURRENT_USER,addr szAutoKey,0,KEY_WRITE,addr hKey
	invoke GetModuleFileName,hInstance,addr szBuf,MAX_PATH
	invoke lstrlen,addr szBuf
	invoke RegSetValueEx,hKey,addr ClassName,0,REG_SZ,addr szBuf,eax
	invoke RegCloseKey,hKey
	ret
InstallAutorun endp
Прикол он конечно ничего, только рекомендую также встроить возможность удаления из автозагрузки, пока тебе за это пальцы не поотрывали =)
На заказ: VBA, Excel mc-black@yandex.ru
Decus6
Сообщения: 2
Зарегистрирован: 13 апр 2009, 00:27

Большое спасибо. Все получилось. Хотя почемуто после перезагрузки ПК запустилось две версии проги. Хотя так даже прикольней (два летающих пуска должно удивить в два раза больше)
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Ну по всем правилам тебе надо сделать не только добавление программы в автозагрузку, но и проверку перед этим действием, нет ли уже программы в автозагрузке )чтобе не плодить загруженные копии. Или как вариант можно при пуске при помощи мъютекса (mutex) проверять, не запущены ли другие экземпляры программы, т.е. ограничить число запущенных экземпляров программы до одной. Это будет более корректно.
На заказ: VBA, Excel mc-black@yandex.ru
Ответить