Автозапуск программы

Тема в разделе "WASM.ASSEMBLER", создана пользователем Kernel64_inc, 11 мар 2012.

  1. Kernel64_inc

    Kernel64_inc New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2012
    Сообщения:
    4
    Подскажите пожалуйста как можно добавить программу в автозапуск на fasm? То есть чтобы программа запускалась вместе с Windows?

    я пытался сделать так:

    Код (Text):
    1. ...
    2. Mname db 'архив.exe',0
    3. Prd db 'Software\Microsoft\Windows\CurrentVersion\Run',0
    4. nBufferLength dw ?
    5. lpBuffer db ?
    6. hkey dd ?
    7. Ntemp dd ?
    8. ...
    9. invoke GetCurrentDirectory,\ ;получаем путь до себя
    10. nBufferLength,\
    11. lpBuffer
    12. invoke lstrcat,lpBuffer,Mname ;прибавляем к пути своё собственное имя
    13. invoke RegCreateKeyEx,HKEY_LOCAL_MACHINE,Prd,0,0,0,KEY_WRITE,0,hkey,Ntemp ;открываем ключ реестра
    14. invoke RegSetValueEx,hkey,lpBuffer,0,REG_SZ,sizkey ;придаём ему значение ввиде пути к главному файлу
    15. invoke RegCloseKey,hkey  ;закрываем ключ
    16. ...
    компилится но почему-то не работает...
     
  2. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    путь до себя получается функцией GetModuleFileName
    почему RegCreateKeyEx, а не RegOpenKeyEx?
    и т.д.
     
  3. Kernel64_inc

    Kernel64_inc New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2012
    Сообщения:
    4
    Заменил и всёравно не работает. А кто-нибудь знает, есть ли какой-нибудь другой способ,
    без использования реестра?
     
  4. ziral2088

    ziral2088 New Member

    Публикаций:
    0
    Регистрация:
    16 авг 2009
    Сообщения:
    283
    Код (Text):
    1. LONG WINAPI RegSetValueEx(
    2.   __in        HKEY hKey,
    3.   __in_opt    LPCTSTR lpValueName,
    4.   __reserved  DWORD Reserved,
    5.   __in        DWORD dwType,
    6.   __in        const BYTE *lpData,
    7.   __in        DWORD cbData
    8. );
    6 параметров.
     
  5. Kernel64_inc

    Kernel64_inc New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2012
    Сообщения:
    4
    понял в чем ошибка, спасибо
     
  6. Kernel64_inc

    Kernel64_inc New Member

    Публикаций:
    0
    Регистрация:
    11 мар 2012
    Сообщения:
    4

    Вот как удалось решить проблему:


    Код (Text):
    1. format  pe gui 4.0
    2. entry    start
    3. include 'win32a.inc'
    4.  
    5. section '.data' data readable
    6. AutoKey db 'Software\Microsoft\Windows\CurrentVersion\Run',0
    7. ValueName db 'Program',0
    8. hkey dd ?
    9. szFile db  0
    10.  
    11. start:
    12.  
    13.       invoke    GetModuleFileName , 0 ,szFile , 256
    14.       invoke RegCreateKeyEx, HKEY_CURRENT_USER,AutoKey,NULL,NULL,NULL,KEY_ALL_ACCESS,NULL,hkey,NULL
    15.       invoke lstrlen,szFile
    16.       invoke RegSetValueEx,[hkey],ValueName,NULL,REG_SZ,szFile,eax
    17.       invoke RegCloseKey,[hkey]
    18.       invoke  ExitProcess,0
    19.  
    20. section '.idata'   import readable
    21.      library kernel32,'kernel32.dll',\
    22.           advapi32,'advapi32.dll'
    23.      
    24.          include 'api/kernel32.inc'
    25.      include 'api/advapi32.inc'