Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Requerir privilegios administrativos (https://www.clubdelphi.com/foros/showthread.php?t=51088)

Chris 05-12-2007 15:53:51

Requerir privilegios administrativos
 
Hola de nuevo. Bueno, mi consulta es la siguiente:
He encapsulado una ventana en una DLL, la cual se encarga de recoger algunos datos del usuario - más que todo la ubicación de la base de datos o servidor firebird- pero resulta que para guarlar esa configuración la dll necesita privilegios administrativos en windows para escribir por ejemplo en C:\archivos de programa\mi_appli...

¿Cómo hago para que cuando inicie o antes de mostrar el dialogo, mi aplicación requiera privilegios administrativos o bien en vista que los eleve?

También, me interaría saber la forma de detectar si el usuario actual tiene privilegios administrativos.

Gracias. Saludos.- Chris.

dec 05-12-2007 16:03:31

Hola,

Para esto último sí que existe una función "IsUserAnAdmin", pero, sobre la que no encuentro documentación en MSDN, y que parece no estar declarada en Delphi. Sin embargo, puede usarse más o menos así:

Código Delphi [-]
function IsUserAnAdmin(): boolean;
const
  SHELL32 = 'shell32.dll';
  PROCNAME = 'IsUserAnAdmin';
var
  hDll: HMODULE;
  func: function(): bool; stdcall;
begin
  result := false;
  hDll := LoadLibrary(PChar(SHELL32));
  if (hDll <> 0) then begin
    try
      func := GetProcAddress(hDll, PChar(PROCNAME));
      if Assigned(func) then
        result := func();
    finally
      FreeLibrary(hDll);
    end;
  end;
end;

Al menos en Windows XP SP2 funciona bien.

Chris 05-12-2007 17:13:25

gracias dec, voy a probrala.

En caso de que no encuentre una solución al primer problema, lo que voy a hacer es advertir al usuario que tiene que tener privilegios administrativos.

PD: http://msdn2.microsoft.com/en-us/library/bb776463.aspx


La franja horaria es GMT +2. Ahora son las 13:13:22.

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