Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Cita:
Empezado por BuRtOn Ver Mensaje
, jajajaja, hay Dios esto si cambia, pero bueno que todo sea por el saber, entonces como es la estructura del integer ??, tengo que hacer todo exactamente como el BinaryData, pero con Integer ??, tengo que crear la variable o como tengo que hacer, mira aqui esta el codigo como lo plantee:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject); 
var reg: TRegistry; 
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\',True);
  if reg.ReadInteger('EnablePrefetcher',3) = '3'
    then Begin
             reg.WriteInteger('EnablePrefetcher',5);
             MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
           end
    else MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
  reg.CloseKey;
end;

se hace igual que el string ? tengo que hacer el mismo metodo que el binary ?
Se procede igual que el ReadString y WriteString.
BuRtOn no te enojes, pero presiona F1 y fíjate los parámetros que reciben estos métodos.

El ReadInteger recibe como parámetro la variable o clave a consultar y regresa el valor guardado, mientras que el Write recibe la clave y el valor a guardar.

Código Delphi [-]
algo := Reg.ReadInteger('que se yo');
Reg.WriteInteger('que se yo',3);

Se ve la diferencia. Uno regresa, el otro escribe. Uno tiene un solo parámetro, el otro dos.

Eso está en la ayuda bien explicado.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 16-08-2008 a las 05:55:14.
Responder Con Cita
  #2  
Antiguo 16-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 19
BuRtOn Va por buen camino
Ok, ya te voy entendiendo, pero aqui va esto:

1.) "algo" que tipo de variable es ?

no se si quede algo asi :

Código Delphi [-]
var algo : Integer;algo := Reg.ReadInteger('EnablePrefetcher');Reg.WriteInteger('EnablePrefetcher',5);

pero igual se generaria un error por que estoy manejando un condiconal en el ReadInteger , para saber que esa clave no se ha movido para proceder con la aplicacion y si ya se modifico que me envie el mensaje de information diciendo esta clave ya fue modificada...


bueno hice esto, pero me salio un error:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :integer;
begin
valor := 3;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\', True);
  if reg.ReadInteger('EnablePrefetcher') = valor then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
end;

El error me dice lo siguiente:

Failed to get data for 'EnablePrefetcher'

no se en donde estoy fallando, y no se como ubicar la variable algo que tu me dijiste...en fin gracias Delphius y perdon por las molestias...
Responder Con Cita
  #3  
Antiguo 17-08-2008
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
Bueno, no tengo ni idea la verdad de muchas cosas, pero para mi que es eso de:
Código Delphi [-]
reg.OpenKey('SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\', True);

Si te fijas volviste a dejar un espacio en la ruta, especificamente en 'Control '

Checa, tal vez es eso...
Responder Con Cita
  #4  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 19
BuRtOn Va por buen camino
Gracias amigo, pero ya mire y no era ese espacio , Dios esto me va a volver loco, no se que es lo que estoy haciendo mal, bueno por si alguien me quiere hechar una manito, aqui esta el codigo de lo que tengo, y tratare de explicarlo:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :integer;
begin
valor := 3;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
  if reg.ReadInteger('EnablePrefetcher') = valor then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
end;

Bueno ahora si explico lo que trate de hacer, como se pueden dar cuenta lo que esta en rojo es lo que voy a cambiar y las variables que utilizo...valor lo asigne como un valor entero, por que ?, por que necesito hacer la comparacion que si el valor que esta en el registro de EnablePrefetcher es 3 que a su vez es el valor que trae por defecto es igual a valor que es tambien 3 , procede a cambiar ese valor del registro 3 a 5, entonces el EnablePrefetcher , ya no sera 3 por defecto si no 5. y de lo contratio osea si 3 es diferente, pues emite el mensje diciendo que su registro ya habia sido modificado anteriormente.

Bueno, creo que ya lo explique super bien, lo que hice y lo que trate de hacer, pero me depura bien la aplicacion, pero a la hora de ejecutarla, como mencione anteriormente me sale el siguiente erro:

"Failed to get data for 'EnablePrefetcher' "
No se que pase sinceramente, y ya lo intente de una forma u otra, y mire la ayuda y me dicen la sintaxis, pero no la se interpretar, o a veces no se que valores o que parametros son los que exigen....Bueno en fin si alguien me puede ayudar se lo agradezco, muchas gracias por su tiempo prestado.
Responder Con Cita
  #5  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 19
BuRtOn Va por buen camino
Bueno aqui esta otro codigo que equivale a otro intento, tratando de seguir el modelo que me dijo Delphius, pero aun no me sale.

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :Integer;
begin
  valor:=5;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
  valor:=reg.ReadInteger('EnablePrefetcher');
    Begin
      reg.WriteInteger('EnablePrefetcher',valor);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end;

end;

Bueno aqui segui tu modelo Delphius pero aun me arroja el mismo error....y si es una bobada el erro, aun no me sentiria satisfecho, por que a ese codigo como le agrego mi condiiconal If, para poder averiguar si el registro ya habia sido antes modificado, o si aun esta sin modificar, para que mi aplicacion entre y proceda..Bueno si pueden ayudarmen gracias y si no, pues me tocara seguir buscando....
Responder Con Cita
  #6  
Antiguo 17-08-2008
Forest Forest is offline
Miembro
 
Registrado: may 2007
Posts: 30
Poder: 0
Forest Va por buen camino
(esto es lo que ya habías puesto solo que no se porque no lo pude copiar bien jaja)
Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :Integer; begin   valor:=5;   reg:= TRegistry.Create;   reg.RootKey := HKEY_LOCAL_MACHINE;   reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
  valor:=reg.ReadInteger('EnablePrefetcher');     Begin       reg.WriteInteger('EnablePrefetcher',valor);       MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end;

end;

Pues primero que nada ahí no tienes ningun IF y si tienes begin y end o_O...
Además ese código no sirve porque si estás intentando guardar el valor del registro a la variable, y después, quieres guardarle el valor de la variable al registro... pues no estas haciendo nada...

La verdad no tengo ni idea como dije antes xD, pero... estás seguro de que EnablePrefetcher es de tipo entero?

Para mi que debe ser algo así:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
begin
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);
if reg.Read[verdadero tipo]('EnablePrefetcher') = 3; // ó '3' si fuese String
    Begin
reg.Write[verdadero tipo]('EnablePrefetcher',5); // ó '5' si fuese String
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
    else
      MessageDlg('Su Menu ya estaba optimizado ò_ó',mtInformation,[mbOK],0);
end;
Se que no es mucha ayuda, pero es lo que puedo hacer jeje
Responder Con Cita
  #7  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 19
BuRtOn Va por buen camino
Tranquilo Forest, pero si notas, mas arriba, tengo este codigo, que es similar al tuyo si es que no es igual:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);var reg: TRegistry;var valor :integer;beginvalor := 3;  reg:= TRegistry.Create;  reg.RootKey := HKEY_LOCAL_MACHINE;  reg.OpenKey('SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\', True);  if reg.ReadInteger('EnablePrefetcher') = valor then    Begin      reg.WriteInteger('EnablePrefetcher',5);      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);    end  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);         reg.CloseKey;end;
Responder Con Cita
  #8  
Antiguo 17-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
BuRtOn,
Tengo entendido que la clave de registro que buscas es esta:

Cita:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Pero veo en tu código que intentas abrir esta:

Cita:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\
Hay un espacio en el medio, te olvidas de abrir un directorio más y además añades una barra al final que no debe ir.

Te recuerdo que el método OpenKey recibe dos parámetros. El segundo, que es de tipo booleano permite crear el directorio en caso de no existir si el valor que se pasa es TRUE.

Estás creando esa clave de registro! Cuidado!

Debe funcionarte. He podido leer sin problemas el valor de EnablePrefetcher aplicando tu código con una variante:

Código Delphi [-]
reg:= TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters', False); //false por las dudas.


valor:=reg.ReadInteger('EnablePrefetcher');
ShowMessage(IntToStr(valor));
reg.CloseKey;
reg.Free;

Recuerda que estás creando un objeto Reg al comienzo, por tanto al final debes liberarlo con Free y que una vez que trabajas con la clave debes cerrarla con CloseKey.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #9  
Antiguo 17-08-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Poder: 19
BuRtOn Va por buen camino
Saludos Delphius, mira modifique el codigo, con lo que me dijiste y aun me ejecuta ese error, y si tenias mucha razon, mire el regedit, y tenia creados unos registros, pero mira dime que erro vez:

Código Delphi [-]
procedure TForm1.btnOptimizar3Click(Sender: TObject);
var reg: TRegistry;
var valor :integer;
begin
  valor := 3;
  reg:= TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('SYSTEM\CurrentControlSet\Control\Session Manager\MemoryManagement\PrefetchParameters ', False);
  if reg.ReadInteger('EnablePrefetcher') = valor then
    Begin
      reg.WriteInteger('EnablePrefetcher',5);
      MessageDlg('Su Menu ha sido optimizado',mtInformation,[mbOK],0);
    end
  else   MessageDlg('Su Menu ya estaba optimizado',mtWarning,[mbOK],0);
         reg.CloseKey;
         reg.Free;
end;

Gracias por tu tiempo...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Editar componente por defecto de Delphi 6 kapullok_2006 OOP 3 05-08-2008 15:04:57
Como editar una imagen con delphi 7 kurono Varios 6 02-01-2008 22:23:12
Regedit REHome Windows 6 06-08-2007 18:55:00
Editar imagen en Delphi feico Gráficos 1 03-04-2007 14:36:06
leer una veriable del Regedit de windows con Delphi afarenas Varios 8 26-09-2006 02:01:30


La franja horaria es GMT +2. Ahora son las 08:21:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi