Ver Mensaje Individual
  #1  
Antiguo 05-04-2006
Avatar de PoZi
PoZi PoZi is offline
Miembro
 
Registrado: abr 2006
Posts: 11
Reputación: 0
PoZi Va por buen camino
Question Dar privilegios de Administrador a la Aplicación

Hola a todos.
Estoy realizando una aplicación de control de acceso para un Pc con XP SP2 donde el usuario que tiene que acceder tiene un perfil limitado (con pocos permisos). Para que la aplicación pudiera escribir en disco le tuve que dar privilegios de administrador con la función CreateProcessWithLogonW de la siguiente forma:

Código Delphi [-]
var 
  StartupInfo: TStartupInfo; 
  ProcessInfo: TProcessInformation; 
begin 
  FillChar (StartupInfo, SizeOf(StartupInfo), #0); 
  StartupInfo.cb := SizeOf(StartupInfo); 
  Win32Check( CreateProcessWithLogonW( StringToOleStr('UsuarioConPermisos'),StringToOleStr ('Dominio'), 
    StringToOleStr('Password'),0, StringToOleStr('Exe'), nil, 0, nil, StringToOleStr('DirectorioTrabajo'), 
    StartupInfo, ProcessInfo ) ); 
end;

En este enlace se define la función CreateProcessWithLogonW:
http://msdn.microsoft.com/library/de...withlogonw.asp

De esta forma la aplicación puede escribir en disco con toda libertad mientras que el usuario no.
Pues bien a partir de ese momento la función: ExitWindowsEx(EWX_FORCE,0); que utilizaba para cerrar la sesión cuando el tiempo de acceso al sistema se ha sobrepasado dejó de funcionar . Lo único que hace es cerrar la aplicación pero el Pc no hace un logoff.
He probado todas la formas que conozco para cerrar la sesión y no lo consigo.
Gracias de antemano.


Última edición por PoZi fecha: 26-04-2006 a las 14:14:54.
Responder Con Cita