Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 12-01-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.965
Poder: 29
delphi.com.ar Va camino a la fama
Espero que te sea de utilidad:
Código Delphi [-]
procedure RunAs(ACommandLine, AUserName, ADomain, APassword: PAnsiChar);
var
  hToken: Cardinal;
  ProcessInfo: TProcessInformation;
  StartupInfo: TStartupInfo;

  function SetUserObjectFullAccess(hUserObject: THandle): Boolean;
  var
    Sd: PSecurity_Descriptor;
    Si: Security_Information;
  begin
    Sd := Ptr(LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH));
    InitializeSecurityDescriptor(Sd, SECURITY_DESCRIPTOR_REVISION);
    SetSecurityDescriptorDacl(Sd, True, nil, False);

    Si := DACL_SECURITY_INFORMATION;
    Result := SetUserObjectSecurity(hUserObject, Si, Sd);

    LocalFree(HLOCAL(Sd));
  end;
begin
  Win32Check(LogonUser(AUserName, ADomain, APassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hToken));
  try
    ImpersonateLoggedOnUser(hToken);
    try
      SetUserObjectFullAccess(GetThreadDesktop(GetCurrentThreadId));
      SetUserObjectFullAccess(GetProcessWindowStation);

      ZeroMemory(@StartupInfo, SizeOf(TStartupInfo));
      StartupInfo.cb := SizeOf(TStartupInfo);
      StartupInfo.wShowWindow := SW_SHOW;


      if not CreateProcessAsUser(hToken, nil, ACommandLine, nil, nil,
                         False, CREATE_NEW_CONSOLE or CREATE_NEW_PROCESS_GROUP,
                         nil, nil, StartupInfo, ProcessInfo) then
        RaiseLastOsError;
    finally
      RevertToSelf;
    end;
  finally
    CloseHandle(hToken);
  end;
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
 


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


La franja horaria es GMT +2. Ahora son las 23:29:23.


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