C/Visual C - Escribir en el registro de windows

 
Vista:

Escribir en el registro de windows

Publicado por ferjat (1 intervención) el 23/10/2001 16:13:42
Quiero escribir en el registro una variable de tipo reg_dword con borland builder o sino visual c, visual basic o delphi. Pero lo importante es un código que me permita escribir en el registro una variable REG_DWORD. ¿Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Escritura de una variable REG_DWORD en el registro de Windows

Publicado por Alejandro (1153 intervenciones) el 17/10/2024 18:03:19
Claro, Ferjat, aquí tienes ejemplos de cómo escribir una variable de tipo `REG_DWORD` en el registro de Windows utilizando diferentes lenguajes: Borland C++ Builder, Visual C++, Visual Basic y Delphi.

1. Borland C++ Builder



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
 
void WriteRegDword(const String& key, const String& valueName, DWORD value) {
    HKEY hKey;
    if (RegOpenKeyEx(HKEY_CURRENT_USER, key.c_str(), 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS) {
        RegSetValueEx(hKey, valueName.c_str(), 0, REG_DWORD, (const BYTE*)&value, sizeof(value));
        RegCloseKey(hKey);
    }
}
 
// Ejemplo de uso
void __fastcall TForm1::Button1Click(TObject *Sender) {
    WriteRegDword("Software\\MiAplicacion", "MiValor", 1);
}

2. Visual C++



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
 
void WriteRegDword(LPCSTR key, LPCSTR valueName, DWORD value) {
    HKEY hKey;
    if (RegOpenKeyExA(HKEY_CURRENT_USER, key, 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS) {
        RegSetValueExA(hKey, valueName, 0, REG_DWORD, (const BYTE*)&value, sizeof(value));
        RegCloseKey(hKey);
    }
}
 
// Ejemplo de uso
int main() {
    WriteRegDword("Software\\MiAplicacion", "MiValor", 1);
    return 0;
}

3. Visual Basic



1
2
3
4
5
6
7
8
9
10
11
12
13
Imports Microsoft.Win32
 
Sub WriteRegDword(key As String, valueName As String, value As Integer)
    Dim regKey As RegistryKey
    regKey = Registry.CurrentUser.CreateSubKey(key)
    regKey.SetValue(valueName, value, RegistryValueKind.DWord)
    regKey.Close()
End Sub
 
' Ejemplo de uso '
Sub Main()
    WriteRegDword("Software\MiAplicacion", "MiValor", 1)
End Sub

4. Delphi



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses
  Windows, Registry;
 
procedure WriteRegDword(const key, valueName: string; value: DWORD);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create(KEY_WRITE);
  try
    reg.RootKey := HKEY_CURRENT_USER;
    if reg.OpenKey(key, True) then
    begin
      reg.WriteInteger(valueName, value);
      reg.CloseKey;
    end;
  finally
    reg.Free;
  end;
end;
 
// Ejemplo de uso
begin
  WriteRegDword('Software\MiAplicacion', 'MiValor', 1);
end.

Notas:


- Asegúrate de tener los permisos necesarios para escribir en el registro.
- Cambia las rutas de las claves y los nombres de los valores según tus necesidades.
- En todos los ejemplos, se utiliza `HKEY_CURRENT_USER`, pero puedes cambiarlo a otra clave según sea necesario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar