Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 476
от 17.06.2006, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 337, Экспертов: 17
В номере:Вопросов: 1, Ответов: 2


Вопрос № 45952: Доброго времени суток, уважаемые эксперты. Написать простенькую прогу на асме (в моем случае - просто создание окошка с надписью) в институте кое-как научили. А вот как сделать так, чтобы при запуске эта прога прописывалась в автозагрузку - такому к ...

Вопрос № 45.952
Доброго времени суток, уважаемые эксперты. Написать простенькую прогу на асме (в моем случае - просто создание окошка с надписью) в институте кое-как научили. А вот как сделать так, чтобы при запуске эта прога прописывалась в автозагрузку - такому к сожалению там не учат. А тут вот понадобилось. Не могли бы вы подсказать, как это можно реализовать? Коротко: как сделать так, чтобы прога, выводящая на экран MessageBox прописалась в автозагрузку и соответственно окно выводилось при каждом запуске системы. Заранее благодарен
Отправлен: 11.06.2006, 23:52
Вопрос задал: Соколов Дмитрий Алексеевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Иванов
Здравствуйте, Соколов Дмитрий Алексеевич!

;----------------------------------------------------------
;
proc AutoRun_Do
publicdll AutoRun_Do
test [(t inid esi).AutoStart], 1
jz @@as_off
Call Reg_SetAutoRun, ofs szRegAutoRun, ofs szRegAutoRunName, [hmemFullNameExe]
jmp @@ret

@as_off:
Call Reg_DelAutoRun, ofs szRegAutoRun, ofs szRegAutoRunName
@ret:
ret
endp

;--------------------------------
; Устанавливает автозапуск в реестре
; OUT-> -1 - ошибка, 0-не установил, !0-установил;
;
proc Reg_SetAutoRun
publicdll Reg_SetAutoRun
ARG @@strRegKey :dword, @@strRegValue :dword, @@strSetValue :dword
USES esi, ebx
LOCAl @@hkey :dword

lea eax, [@@hkey]
Call RegOpenKeyEx, HKEY_CURRENT_USER, [@@strRegKey], 0, KEY_SET_VALUE,
eax
cmp eax, ERROR_SUCCESS
jnz @@no

Call lstrlen, [@@strSetValue]
inc eax
Call RegSetValueEx, [@@hkey], [@@strRegValue], 0, REG_SZ,
[@@strSetValue], eax
cmp eax, ERROR_SUCCESS
jnz @@no_0

mov eax, [@@hkey]
or eax, eax
jz @@m1
Call RegCloseKey, eax
@m1:

@yes:
sub eax, eax
inc eax
jmp @@ret

@no:
sub eax, eax
@ret:
ret

@no_0:
mov eax, [@@hkey]
or eax, eax
jz @@m1_0
Call RegCloseKey, eax
@m1_0:
jmp @@no

@Error:
sub eax, eax
dec eax
jmp @@ret
endp Reg_SetAutoRun
;--------------------------------
; Стирает автозапуск в реестре
; OUT-> -1 - ошибка, 0-не стёр, !0-стёр;
;
proc Reg_DelAutoRun
publicdll Reg_DelAutoRun
ARG @@strRegKey :dword, @@strRegValue :dword
USES esi, ebx
LOCAl @@hkey :dword

lea eax, [@@hkey]
Call RegOpenKeyEx, HKEY_CURRENT_USER, [@@strRegKey], 0, KEY_SET_VALUE,
eax
cmp eax, ERROR_SUCCESS
jnz @@no

Call RegDeleteValue, [@@hkey], [@@strRegValue]
cmp eax, ERROR_SUCCESS
jnz @@no_0

mov eax, [@@hkey]
or eax, eax
jz @@m1
Call RegCloseKey, eax
@m1:

@yes:
sub eax, eax
inc eax
jmp @@ret

@no:
sub eax, eax
@ret:
ret

@no_0:
mov eax, [@@hkey]
or eax, eax
jz @@m1_0
Call RegCloseKey, eax
@m1_0:
jmp @@no

@Error:
sub eax, eax
dec eax
jmp @@ret
endp Reg_DelAutoRun



---------
Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор)
Россия, Нижний Новгород
Тел.: +78313145721
Организация: M2Media.ru
Адрес: Нижний Новгород, ул.Малая Ямская
WWW: Eugene Ivanov
ICQ: 214;88;90;76
----
Ответ отправлен: 12.06.2006, 00:29
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое, буду разбираться

Отвечает: Mihasic
Здравствуйте, Соколов Дмитрий Алексеевич!
Элементы автозагрузки находятся в реестре (правда, есть еще папка "автозагрузка", но она больше для совместимости со старыми программами). Чтобы добавить элемент в автозагрузку, нужно создать строковой параметр c путем к исполняемому в разделе (в реестре, естественно):
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun - для текущего пользователя
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun - для всех пользователей

Рекомендую просмотреть разделы...

Главное, чтобы был доступ к реестру.

Приложение:

Ответ отправил: Mihasic (статус: 1-ый класс)
Ответ отправлен: 12.06.2006, 08:55


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное