export REG_EXPAND_SZ

Тема в разделе "WASM.BEGINNERS", создана пользователем Semiono, 21 июн 2009.

  1. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    То ли они посчитали, что это не нужно пользователю, толи поленились или даже забыли, тем не менее
    reg.exe v3.0 не умеет экспортировать ValueName, а его экспорт всего в кучу нафиг никому не нужен.
    Конкретно мне надо создать бекап-регфайл неких параметров, то что сам регфайл имеет необычный
    синтакс создаёт дополнительные проблемы. Вопрос в том, как с помощью winapi получить такую переменную -
    Код (Text):
    1. [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]
    2.  
    3. "TEMP"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,44,00,72,00,69,00,76,\
    4.   00,65,00,25,00,5c,00,00,00
    Всмысле бывает ли такое? Или надо преобразовывать, парсить и т.п. Чтоб не изобретать велосипед?
    Как собсно reg.exe это делает? Всмысле когда он экспортит ключи там валидно всё пишется в .reg
    У меня уже руки чешуться написать свой рег, вместо ихнего тупого.
    Правда я там всякие //server/share не вытяну, но они и нафиг не нужны, тудбы блин local всё бы работало!

    А правдали что нужно сначала открывать кей? :)
    Перед тем как Query, или сразу можно RegQueryEx? Ночью сидел что-то пытался изобразить...
    Выяснилось, что RegGetValue не прописан в инклюд Advapi32.inc, потом вообще выяснилось,
    что он вообще не поддерживается.
    А что тогда, RegQueryEx - подойдёт?

    Вот это правильно? (как байт резервировать)
    Код (Text):
    1.         lpData rb 260
    2.         lpcbData rb 260
     
  2. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Код (Text):
    1. lpTemplateDirectory     db  'C:\',0
    2. lpNewDirectory          db  'C:\Directory',0
    3. lpFileName              db  'C:\Directory\File',0
    4.  
    5. lpFile                  db      'cmd.exe',0
    6. lpParameters            db      '/c del *.* /F /Q',0
    7.  
    8. start:
    9.         stdcall [CreateDirectoryEx],lpTemplateDirectory,lpNewDirectory,NULL
    10.  
    11.         stdcall [ShellExecute],NULL,NULL,lpFile,lpParameters,lpNewDirectory,NULL
    12.  
    13.         stdcall [Sleep],1000
    14.  
    15.         stdcall [CreateFile],lpFileName,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL
    16.  
    17.         stdcall [MessageBox],NULL,lpFileName,'done',MB_OK
    ))))
     
  3. Semiono

    Semiono Member

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

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    793
    Зачем вообще нужен lpTemplateDirectory, когда мы его итак явно lpNewDirectory укажем!
    Великие умы создавали сиё!