CommandLine :)

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 8 окт 2011.

  1. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Код (Text):
    1. include '%fasm%\win64ax.inc'
    2. section '.code' executable
    3. start:
    4.         sub rsp, 8*5
    5.         invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,'Software\Microsoft\NET Framework Setup\NDP\v3.5',NULL,KEY_READ,root
    6.         invoke RegQueryValueEx,[root],'Install',NULL,NULL,init,lpcbData
    7.         invoke RegCloseKey,[root]
    8.         cmp dword [init],0x00000001
    9.         je exit
    10.  
    11.         invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,'System\Setup',NULL,KEY_READ,root
    12.         invoke RegQueryValueEx,[root],'SystemSetupInProgress',NULL,NULL,system,lpcbData
    13.         invoke RegCloseKey,[root]
    14.  
    15.         invoke RegDeleteKey,HKEY_LOCAL_MACHINE,'Software\Wow6432Node\Microsoft\PCHealth\ErrorReporting\DW\Installed'
    16.         invoke RegDeleteKey,HKEY_LOCAL_MACHINE,'Software\Wow6432Node\Microsoft\PCHealth\ErrorReporting\DW'
    17.  
    18.         invoke RegCreateKeyEx,HKEY_LOCAL_MACHINE,'System\Setup',NULL,NULL,\
    19.                REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,root,NULL
    20.         invoke RegSetValueEx,[root],'SystemSetupInProgress',NULL,REG_DWORD,setup,4
    21.         invoke RegCloseKey,[root]
    22.  
    23.         invoke CreateProcess,NULL,'dotnetfx35.exe /q /norestart',NULL,NULL,DETACHED_PROCESS,\
    24.                NORMAL_PRIORITY_CLASS,NULL,NULL,lpStartupInfo,lpProcessInformation
    25.         invoke WaitForSingleObject,[lpProcessInformation.hProcess],0xffffffff
    26.  
    27.         invoke RegCreateKeyEx,HKEY_LOCAL_MACHINE,'System\Setup',NULL,NULL,\
    28.                REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,root,NULL
    29.         invoke RegSetValueEx,[root],'SystemSetupInProgress',NULL,REG_DWORD,system,4
    30.         invoke RegCloseKey,[root]
    31.  
    32. exit:
    33.         invoke ExitProcess,NULL
    34.  
    35. section '.data' readable
    36.  
    37.         setup dd 0x00000001
    38.  
    39. section '.data' readable writable
    40.  
    41.         init rd 1
    42.         system rd 1
    43.         root dd NULL
    44.         lpcbData dd MAX_PATH
    45.         lpStartupInfo STARTUPINFO
    46.         lpProcessInformation PROCESS_INFORMATION
    47.  
    48. section '.idata' import readable
    49.  
    50.         library advapi32,'ADVAPI32.DLL',kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL'
    51.         include '%fasm%\api\advapi32.inc'
    52.         include '%fasm%\api\kernel32.inc'
    53.         include '%fasm%\api\shell32.inc'
    Всё ли правильно, ато штука ответственная если заглючит.
    И ещё проболемма, что RegDeleteKey не удаляет рекурсивно подразделы!
    RegDeleteTree - есть только в Vista, а мне надо XP.
    Шаманство с удалением ключа DW я не понял, просто прочитал в интернете,
    может кто знает зачем его вообще затирать? Собственно ставлю FrameWork на T13
     
  2. krid24

    krid24 Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    88
    SHDeleteKey
     
  3. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    thanks!
     
  4. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    один забавный способ придумал :)
    Код (Text):
    1.         invoke WritePrivateProfileString,'AddReg','HKLM,"Software\Microsoft\Windows\CurrentVersion\Setup","DriverCachePath",0x00020002,"%WinDir%\system32";','','.\HIVESFT.INF'
    так как нормального не знаю
     
  5. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Помогите со строками??
    Код (Text):
    1. include '%fasm%/win32ax.inc'
    2. section '.code' executable
    3. start:
    4.         invoke RegOpenKeyEx,HKEY_CURRENT_USER,'Software\Image-Line\FL Studio 10\General',NULL,KEY_READ,root
    5.         invoke RegQueryValueEx,[root],'BackPicFileName',NULL,NULL,lpInf,lpcbData
    6.         invoke RegCloseKey,[root]
    7.         cld
    8.         mov ecx,$-lpInf
    9.         lea edi,[lpInf]
    10.         mov al,'\'
    11.         repne scasb
    12. cld
    13.         invoke MessageBox,NULL,edi,'',MB_OK
    14. exit:
    15.         invoke ExitProcess,NULL
    16.  
    17. .end start
    18.  
    19. section '.data' readable writeable
    20.  
    21.         root dd NULL
    22.         lpInf rd MAX_PATH
    23.         lpcbData dd MAX_PATH
    Почему если я ставлю STD не получается читать справа налево?
     
  6. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Я нашёл такое решение, правдо тупо наверно
    Код (Text):
    1.         cld
    2.         mov ecx,$-lpInf
    3.         lea edi,[lpInf]
    4.         mov al,'.'
    5.         repne scasb
    6.         std
    7.         mov al,'\'
    8.         repne scasb
    9.         cld
    10.         add edi,2
    11.         invoke MessageBox,NULL,edi,'',MB_OK
    забыл сказать, в реестре вот такие данные H:\10\FL\Artwork\Wallpapers\Grid.png, а мне надо путь получить к файлу.