• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Реестр && Winapi && Masm

  • Автор темы FourtySeven
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

FourtySeven

Задача заключается в том что нужна подпрограмма меняющая рабочий стол.
Путь к рабочему столу в ветке:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\General
И ключ:

Проблема состоит в реализации замены значения данного ключа реестра при помощи функций WinApi.
Для этого собираюсь использовать:
LONG RegReplaceKey(
HKEY hKey,
LPCTSTR lpSubKey,
LPCTSTR lpNewFile,
LPCTSTR lpOldFile
);

Загвоздка в формирование файла LPCTSTR lpNewFile:
[in] Pointer to a null-terminated string containing the name of the file with registration information. This file is typically created by using the RegSaveKey function. This value can be set to NULL.


Помогите с формированием данного файла. Реализация желательно на ASM`e. Заранее благодарен
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Ну ты и велосипедист =)

RegReplaceKey это чутка из другой опере.

RegSetValueEx вполне справиться с твоей задачей без всяких файлов.
В мсдн да и в сетке примеров пачка(на том же wasm должен быть сорс по работее с реестром)


А вообще присмотрись IActiveDesktop Interface, конечно с COM работать геморойно, но возможностей этот интерфес предоставляет по больше, причем, что не маловажно, это документированный способ смены обоев.
 
F

FourtySeven

Вот еще один вопрос возник: Как средствами API скрыть окно консольного приложения?
Пробовал через SetConsoleWindowInfo с координатами окна 0,0,0,0 все равно окно видно.
Заранее благодарен
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Консоль пренаделжит твое процессу?
Если дочернему, то каким образом ты создаешь его(дочерний процесс)?
 
F

FourtySeven

Моя программа и есть консольное приложение:
c:\masm32\bin\link /SUBSYSTEM:CONSOLE "%1.obj"
Я хочу чтобы при его запуске не появлялось ДОСовское окошко. CreateProcess в программе не используется.
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Если тебе не нужна консоль, то почему бы не слинковать как оконное приложение?
 
F

FourtySeven

Ты имеешь ввиду. Слинковать оконное приложение и не создавть в нем окно? (Как бы парадоксально это не звучало)
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Да. И это совсем не парадоксольное, а очень даже обычное решение. При этом остается возможность самому создать консоль при необходимости.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!