![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
A ver BuRtOn, por algo digo que leas la ayuda sobre TRegistry.
Tienes la clave de registro HEY_CURRENT_USER\Desktop\MenuShowDelay Bueno, empecemos a desarmar esta clave para que comprendas el porqué de cada método que ves en el código. HEY_CURRENT_USER corresponde al ROOT. El directorio principal de la clave. Luego le siguen los subdirectorios de la clave. En este caso es uno sólo: Desktop. Y por último viene la variable, MenuShowDelay. Cuando uno desea modificar una clave del registro debe abrir primero dicha clave. Esto se consigue con los siguientes pasos: 1. Establecer el root.
2. Abrir el/los directorio/s. Aqui hay dos maneras, Si el subdirectorio tiene muchos subdirectorios debemos ir abriendolos uno por uno, o directamente los abrimos todos de una vez. Por ejemplo,
es equivalente a hacer:
El segundo parámetro, que corresponde a un tipo boolean, es para indicar si debe crear el directorio en caso de no existir dicho directorio. Una vez que todos los directorios han sido abiertos, ya podemos modificar la clave o variable que buscamos. Aqui dependerá si lo que guarda es string, integer, etc. Por ejemplo, supongamos que se guarda un string:
En el ejemplo, se cambia la variable DisableTaskMgr con el valor 1 pero en string. Una vez hecho los cambios, hay que cerrar la clave.
¿Se entiende ahora? Es necesario que conozcas el registro de Windows. Al menos, lo que vas a modificar y/o leer. Con respecto a cuando y donde hacer esto, dependerá de lo que se necesite. Puede ser en la primera vez que se va a usar el programa, y de allí en mas no debería hacer falta volver a hacerlo. Dije debería puesto que si se cambia el registro, en forma externa a tu aplicativo ya suenan las sirenas. Puede ser ante la pulsación de un botón, en el evento OnCreate del form principal... esto ya es una cuestión de requisitos, de diseño del sistema y/o de implementación. Saludos, |
|
#2
|
||||
|
||||
que pena, aki esta el codigo es que me salio a lo Ancho... Última edición por dec fecha: 15-08-2008 a las 05:05:57. |
|
#3
|
||||
|
||||
|
Hola BuRtOn,
Tengo para ti cuatro observaciones: 1. En el segundo OpenKey, estás pasando el texto con un espacio al final. Deberías quitar ese espacio. 2. Dudo que encuentres el directorio Desktop en HKEY_CURRENT_USER. Yo más bien diría que es HKEY_CURRENT_USER\Control Panel\Desktop. 3. El valor que se almacena en MenuShowDelay es un string. 4. ¿Tiene algún significado para ti el parámetro BTF? ¿Sabes lo que hace DeleteValue? Esto te lo pregunto porque se me hace que copiaste código sin entender el porqué y de donde sale el parámetro BTF. Ese parámetro que ves en el procedimiento está para controlar alguna acción dentro del procedimiento del cual copiaste. Ahora, para ti, ¿que es ese BTF? Te sirve de algo? Porque si haces esto:
Lo que conseguirás es eliminar dicha clave del registro (si existiese). ¿Deseas brindar la posibilidad de que se elimine y/o se escriba en el registro con un parámetro? BuRtOn, Al menos hubieras dado un nombre adecuado al procedimiento, Para que no sea tan evidente que copiaste y solo lo editaste según lo que yo te dije .Antes te pregunté si comprendías lo que es un parámetro. Di por entendido de que así era y que comprenderías que ese parámetro sólo es de interés para el que ha diseñado ese código. Que quieres te diga... a mi me huele a un simple Copy-Paste . ¿Leiste un poco la ayuda sobre el TRegistry? ¿Te fijaste si la clave en el registro está y de que tipo es? ¿O simplemente porque es un "número" intuías que verdaderamente se almacena un número? Si ejecutaras el código que expusiste, conseguirías crear una clave DisableTaskMgr (en el caso de que BTF sea True) en HKEY_CURRENT_USER\Desktop\MenuShowDelay \ con un valor entero (si tu WriteXXX fuera WriteInteger) y no estarías modificando la clave adecuada. Menos mal que antes te dije que conocieras la parte del registro con la que vas a trabajar ![]() En definitiva: 1. Establecer el root correcto. 2. Abrir el directorio Control Panel 3. Abrir el directorio Desktop 4. Escribir en MenuShowDelay el valor '0' (o el que se desee. ¡Poner antención al tipo por favor!) 5. Cerrar Ahora si, espero que se entienda. Saludos, |
|
#4
|
||||
|
||||
|
Hola delphius, Bueno como primer punto, no tengo por que disimular que copie el codigo, por que si no te diste cuenta yo recalque al principio de este hilo que el codigo me lo habia pasado un amigo, para que analisara las cosas, algo muy diferente a que me pusiera a mentir de que el codigo lo habia hecho yo.
Como segundo punto, no sabia a un 100% como se comportaria ese codigo en el Regedit de windows, por algo pregunte. Tercer punto: Lamentablemente no tengo mucho tiempo que si diga para leer las cosas que a mi me interesan y deseo aprender, por mi estudio, y no solo eso, ahora nos enfocan a visual Basic 5.0, y tambien me toca estudiar. Cuarto punto: Estudio Delphi aun por que me gusta y lo aprecio mucho, pero aveces no me queda tiempo. Quinto punto: De igual forma te agradesco que me allas ayudado, va ser muy util tu ayuda, pero enserio, ya relajate un poco delphius y no me condenes a cadena perpetua sin antes leer bien lo que yo expongo en mis hilos, lo digo en cuanto a lo que dijiste que ubira disimulado que el codigo es copiado, a mi me gusta decir las cosas como son, no puedo aparentar que ese codigo es mio, por que por algo estoy preguntndo, no es apenas obvio ???.. Bueno Gracias, voy a intentar lo que me dijiste delphius, y sin broncas, gracias. ![]() |
|
#5
|
||||
|
||||
|
Saludos, Ok delphius gracias tus aportes fueron de gran ayuda, repase bien el codigo y pude lograr lo que queria, aqui esta el codigo como lo hice:
Espero que a alguien le sea util...Bueno delphius ahora va esta pregunta, como hago el condicional, para que me haga lo siguiente: * Por ejemplo voy a ejecutar la aplicacion para que me aumente la velocidad de mi menu de inicio de windows, que es basicamente cambiar el valor de 400 a 0, como esta en mi codigo, pero si alguien ejecuta mi aplicacion y ya han modificado el registro, osea ya no esta en 400 si no en 0, en pocas palabras necesito que me determine si el menu ya ha sido optimizado oh no, osea al ejecutar mi aplicacion que me determine si el valor 400 ya ha sido modificado a 0, para enviar un mensaje que me diga: "su equipo ya habia sido optimizado", espero que me puedas colaborar, y grcias ante mano. |
|
#6
|
||||
|
||||
|
Cita:
TRegistry cuenta con los métodos necesarios para leer, guardar, eliminar claves, para saber si existe alguna clave en particular o no... En estos momentos no tengo Delphi a mano, pero estoy seguro de que para leer el valor es ReadString. El procedimiento es el mismo: 1. Establecer el root 2. Abrir directorios 3. Leer clave 4. Si el valor de clave leida es distinto a '0' 4.1. escribir en clave el valor '0' Una vez que el TRegistry se ubica en una clave, se puede trabajar con ella. De modo que con solo abrir los directorios para leerlos ya no te haría falta volver a abrirlos para modificarlo. ¿Se entiende? Sugiero que leas la ayuda sobre TRegistry. En serio, es preferible tomarse unos minutos para leer un poco y comprender mejor que intentar a ciegas. Recuerda que el registro de Windows es un tanto sencible, una metedita de pata y ¡PUM! estallan pantallitas azules. Saludos, |
|
#7
|
|||
|
|||
|
Tendrias que preguntar por el valor de la clave,
Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#8
|
||||
|
||||
|
Saludos, ok entendi, pero ahora tengo un problema, jejeje, como se si mi registro es string o binary, o lo que sea es que no puedo editar esta clave:
[FONT='Book Antiqua','serif']HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagement\PrefetchParameters[/font][FONT='Book Antiqua','serif']. Una vez alli aumentaremos el contenido del valor EnablePrefetcher del predeterminado "3" al recomendado "5".[/font] [FONT='Book Antiqua','serif']Gracias por su ayuda...muy amables.[/font] |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|