SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: lalo_soft en Miércoles 15 de Febrero de 2006, 23:09

Título: Registro De Windows
Publicado por: lalo_soft en Miércoles 15 de Febrero de 2006, 23:09
Tengo este codigo para crear keys en el registro pero no funca
Código: Text
  1.  
  2.   private gameConfig configuracion;
  3.     private RegistryKey llaveRegistro,GRGroup, FMCZ,juegoConfig;
  4.  
  5.     public SetupGame(string nameGame)
  6.     {
  7.       configuracion = new gameConfig(false);
  8.       // Creacion de las claves de registro
  9.       llaveRegistro = Registry.CurrentUser;
  10.       GRGroup = (llaveRegistro.OpenSubKey("Software",true)).CreateSubKey("GuyaniGames");
  11.       FMCZ = GRGroup.CreateSubKey(nameGame);
  12.       juegoConfig = FMCZ.CreateSubKey("Configuracion");
  13.             juegoConfig.OpenSubKey("Configuracion",true);
  14.       configuracion.VolSonido = System.Convert.ToInt32(juegoConfig.GetValue("Volumen de Sonido",this.configuracion.VolSonido));
  15.       configuracion.VolMusica = System.Convert.ToInt32(juegoConfig.GetValue("Volumen de Musica",this.configuracion.VolMusica));
  16.     }
  17.  
Título: Re: Registro De Windows
Publicado por: jesusssX en Jueves 16 de Febrero de 2006, 00:32
Muchas veces las directivas de ámbito en C# exigen permisos concretos al sistema, y esto causa confución y aunque el código compile no quiere decir que este se encuentree funcionando correctamente, por esto lo mejor es usar algún script que no ocasiones esto problemas, porque no puruebas con Visual Basic script ya posee clases y los métodos necesario para elaborar registros en Windows, luego puedes llamar ese script desde c #.net para no perder la encapsulación
Título: Re: Registro De Windows
Publicado por: lalo_soft en Jueves 16 de Febrero de 2006, 01:18
Al parecer solucione el problema de la siguente forma.
[/CODE]
 public SetupGame(string nameGame)
    {
      configuracion = new gameConfig(false);
      // Creacion de las claves de registro
      llaveRegistro = Registry.CurrentUser;
      GRGroup = (llaveRegistro.OpenSubKey("Software",true)).CreateSubKey("GuyaniGames");
      FMCZ = GRGroup.CreateSubKey(nameGame);
      juegoConfig = FMCZ.CreateSubKey("Configuracion");
       juegoConfig.OpenSubKey("Configuracion",true);
      configuracion.VolSonido = System.Convert.ToInt32(juegoConfig.GetValue("Volumen        de Sonido",this.configuracion.VolSonido));
      configuracion.VolMusica = System.Convert.ToInt32(juegoConfig.GetValue("Volumen de Musica",this.configuracion.VolMusica));
    }
Código: Text
  1.  
  2.  
  3. Este codigo ta bueno ya que al revisar con REGEDIT las claves fueron creadas.
  4.  
  5. Aqui esta la falla!!!
  6.  
  7.  
      public void SaveSetup()
      {  
       juegoConfig.SetValue("Volumen de     Sonido",(Int32)configuracion.VolSonido);
       juegoConfig.SetValue("Volumen de Musica",(Int32)configuracion.VolMusica);
      }
[CODE]  

El detalle es que hay que volver a abrir todas las claves y subclaves (al salir del ambito del primer metodo se cierran todas las claves !yo no sabia eso¡)  para poder escribir un valor.
Título: Re: Registro De Windows
Publicado por: lalo_soft en Jueves 16 de Febrero de 2006, 01:24
Sorry repito porque que quedo na q, ver :angry:  :angry:

Al parecer solucione el problema de la siguente forma.
Código: Text
  1.  
  2.  public SetupGame(string nameGame)
  3. {
  4. configuracion = new gameConfig(false);
  5. // Creacion de las claves de registro
  6. llaveRegistro = Registry.CurrentUser;
  7. GRGroup = (llaveRegistro.OpenSubKey("Software",true)).CreateSubKey("GuyaniGames");
  8. FMCZ = GRGroup.CreateSubKey(nameGame);
  9. juegoConfig = FMCZ.CreateSubKey("Configuracion");
  10. juegoConfig.OpenSubKey("Configuracion",true);
  11. configuracion.VolSonido = System.Convert.ToInt32(juegoConfig.GetValue("Volumen de Sonido",this.configuracion.VolSonido));
  12. configuracion.VolMusica = System.Convert.ToInt32(juegoConfig.GetValue("Volumen de Musica",this.configuracion.VolMusica));
  13. }
  14.  
  15.  

Este codigo ta bueno ya que al revisar con REGEDIT las claves fueron creadas.

Aqui esta la falla!!! :huh:  :huh:

Código: Text
  1.  
  2.  public void SaveSetup()
  3. {
  4. juegoConfig.SetValue("Volumen de Sonido",(Int32)configuracion.VolSonido);
  5. juegoConfig.SetValue("Volumen de Musica",(Int32)configuracion.VolMusica);
  6. }
  7.  
  8.  

El detalle es que hay que volver a abrir todas las claves y subclaves (al salir del ambito del primer metodo se cierran todas las claves !yo no sabia eso¡ :whistling: ) para poder escribir un valor.
Título: Re: Registro De Windows
Publicado por: lalo_soft en Jueves 16 de Febrero de 2006, 02:17
Citar
porque no puruebas con Visual Basic script

Creo que los post aqui mostrado deben ser para VC#   <_< ¿ho NO?..