Страница 1 из 1

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

Добавлено: 13 апр 2009, 00:48
Decus6
Делаю програму-шутку. Но не знаю как зделать что бы она записывала себя в атозагрузку. может кто поможет. вот исходник

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

Добавлено: 13 апр 2009, 11:36
mc-black
Вот код, надеюсь сообразишь что к чему и куда вставлять.

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

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
Прикол он конечно ничего, только рекомендую также встроить возможность удаления из автозагрузки, пока тебе за это пальцы не поотрывали =)

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

Добавлено: 13 апр 2009, 17:49
Decus6
Большое спасибо. Все получилось. Хотя почемуто после перезагрузки ПК запустилось две версии проги. Хотя так даже прикольней (два летающих пуска должно удивить в два раза больше)

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

Добавлено: 13 апр 2009, 18:15
mc-black
Ну по всем правилам тебе надо сделать не только добавление программы в автозагрузку, но и проверку перед этим действием, нет ли уже программы в автозагрузке )чтобе не плодить загруженные копии. Или как вариант можно при пуске при помощи мъютекса (mutex) проверять, не запущены ли другие экземпляры программы, т.е. ограничить число запущенных экземпляров программы до одной. Это будет более корректно.