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 07-08-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por gersojn Ver Mensaje
Hola, les cuento que estoy haciendo una aplicacion la cual necesita permisos de administrador para que algunas funciones sirvan, como leer el nombre del procesador por medio de un Registry, etc.
Para leer el nombre del procesador no es necesario que tu aplicación tenga privilegios de administrador. Simplemente establece la propiedad ReadOnly de TRegistry a True y dicho componente no te producirá problemas al leer cualquier clave/valor del registro.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #2  
Antiguo 08-08-2011
gersojn gersojn is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 85
Poder: 16
gersojn Va por buen camino
Hola, gracias por las respuestas

Bueno, veran tengo el siguiente codigo

Código Delphi [-]
function NombreProcesador:string;
var
Registro:TRegistry;
begin

  Result:='';
  Registro:= TRegistry.Create;
  try
    Registro.RootKey:= HKEY_LOCAL_MACHINE;
    if Registro.OpenKey('\Hardware\Description\System\CentralProcessor\0', True) then
     Result:= Registro.ReadString('ProcessorNameString');
  finally
  Registro.Free;
  end;
end;

No se como colocar el TRegistry a true, tampoco puedo colocarlo a Readonly.

En cuanto a compilar con brcc35 el archivo.RC, pues, lo compile todo bien, y me genero el archivo.RES (Nota: no se si habra problema con la extension, si sea necesario, archivo.res, ya que yo tengo archivo.RES) despues agrego
Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Registry;{$r win7.RES}

No me genera ningun tipo de error, solo unos warning
Código:
[DCC Warning] W1056 Warning: Duplicate resource:  Type 24 (user-defined), ID 1; File C:\Users\gersojn\Documents\RAD Studio\Projects\Tarea\Nombre_Procesador\Project1.res resource kept; file C:\Users\gersojn\Documents\RAD Studio\Projects\Tarea\Nombre_Procesador\win7.RES resource discarded.
Pero no me presenta el nombre del procesador, debo de integrar el RES al proyecto desde el Embarcadero, porque solo lo he agregado a la carpeta del proyecto , tambien hize una prueba agregandolo a Project -> Resources, pero tampoco.

Que puedo hacer al respecto? de antemano muchas, gracias.

Última edición por gersojn fecha: 08-08-2011 a las 00:21:25.
Responder Con Cita
  #3  
Antiguo 08-08-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
En Win7 es mas complicado ejecutar como administrador que usar un archivo de recursos.

Para tu caso la función puedes hacerla así:

Código Delphi [-]
function NombreProcesador:string;
var
Registro:TRegistry;
begin

  Result:='';
  Registro:= TRegistry.Create;
  Registro.Access:= KEY_READ;
  try
    Registro.RootKey:= HKEY_LOCAL_MACHINE;
    if Registro.OpenKey('\Hardware\Description\System\CentralProcessor\0', True) then
     Result:= Registro.ReadString('ProcessorNameString');
  finally
  Registro.Free;
  end;
end;

Saludos.
Responder Con Cita
  #4  
Antiguo 08-08-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Utiliza este código:
Código Delphi [-]
function NombreProcesador:string;
var
Registro:TRegistry;
begin

  Result:='';
  Registro:= TRegistry.Create;
  try
    Registro.ReadOnly := True; // esto es lo que te intente decir
    Registro.RootKey:= HKEY_LOCAL_MACHINE;
    if Registro.OpenKey('\Hardware\Description\System\CentralProcessor\0', True) then
     Result:= Registro.ReadString('ProcessorNameString');
  finally
  Registro.Free;
  end;
end;

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #5  
Antiguo 08-08-2011
gersojn gersojn is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 85
Poder: 16
gersojn Va por buen camino
Gracias

muchas gracias por las respuestas, ya funciona excelente el programa con la funcion anterior

Código Delphi [-]
function NombreProcesador:string; 
var 
  Registro:TRegistry; 
begin    
  Result:= '';   
  Registro:= TRegistry.Create;   
  Registro.Access:= KEY_READ;   
  try     
    Registro.RootKey:= HKEY_LOCAL_MACHINE;     
    if Registro.OpenKey('\Hardware\Description\System\CentralProcessor\0', True) then      
      Result:= Registro.ReadString('ProcessorNameString');   
   finally   
     Registro.Free;   
  end; 
end;

Muchas gracias por la ayuda.

Última edición por ecfisa fecha: 08-08-2011 a las 01:02:57. Razón: Corregir identación
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
Problemas de Privilegios en Delphi gersojn Varios 10 03-08-2011 19:30:06
Aplicación con privilegios de administrador vtorres Varios 8 07-11-2008 16:59:38
Que una aplicación system ejecute a otra con privilegios del usuario activo. l30 API de Windows 1 28-06-2008 18:46:26
Dar privilegios de Administrador a la Aplicación PoZi API de Windows 16 26-04-2006 20:17:52
Privilegios en interbase acrophet Conexión con bases de datos 1 09-02-2004 15:07:35


La franja horaria es GMT +2. Ahora son las 14:48:09.


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