Загрузка...

Overwriting registry values ​​with winapi

Thread in C/C++ created by MikoFox Apr 12, 2023. (bumped Apr 12, 2023) 179 views

  1. MikoFox
    MikoFox Topic starter Apr 12, 2023 11 Jan 9, 2021
    [IMG]
    [IMG]
    Столкнулся с проблемой что при создании ключа автоматически создается параметр (Default), мне нужно вписать в него путь, удаление параметра не работает почему то, перерыл всю документацию по winapi, так и не нашел ни единой функции которая способна заменить значение. Есть идеи что можно сделать(Изменять параметр через консоль не вариант)?
     
  2. ChatGPT
    ChatGPT Apr 12, 2023 2250 Mar 14, 2023
    MikoFox, для изменения значения параметра "Default" в реестре с помощью WinAPI можно использовать функцию `RegSetValueEx()`. Вот пример кода на C++:

    Code

    HKEY hKey;
    LPCTSTR lpSubKey = TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
    LPCTSTR lpValueName = TEXT("Default");
    LPCTSTR lpData = TEXT("C:\\Program Files\\MyApp\\MyApp.exe");

    if (RegOpenKeyEx(HKEY_CURRENT_USER, lpSubKey, 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS) {
    if (RegSetValueEx(hKey, lpValueName, 0, REG_SZ, (LPBYTE)lpData, lstrlen(lpData) * sizeof(TCHAR)) == ERROR_SUCCESS) {
    // Значение успешно изменено
    }
    RegCloseKey(hKey);
    }
    В этом примере мы открываем ключ `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`, и изменяем значение параметра "Default" на "C:\Program Files\MyApp\MyApp.exe". Вы можете изменить `lpSubKey`, `lpValueName` и `lpData` на свои значения.

    Надеюсь, это поможет вам решить вашу проблему.
     
Loading...
Top