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)
-   -   ejecutar aplicacion desde delphi como otro usuario (https://www.clubdelphi.com/foros/showthread.php?t=10842)

aram2r 31-05-2004 09:45:22

ejecutar aplicacion desde delphi como otro usuario
 
Hola amigos mi duda existencial en estos momentos es como ejecuta una aplicacion desde delphi, yo lo hago con WinExec(), pero necesito ejecutarlo con un usuario distinto....osea me explico: Estoy en Win2000 y quiero ejecutar una instalacion de un programa desde delphi pero necesito permisos........desde windows se soluciona con "Ejecutar como" pero dsd delphi no tengo ni idea de como pasarle q lo quiero ejecutar con otro usuario....Podeis ayudarme? Gracias.

CHiCoLiTa 31-05-2004 11:31:17

Echale un ojo a este hilo a ver si sacas algo en claro run as

aram2r 01-06-2004 10:49:54

Gracias ChicoLita
 
Gracias ...le he exado un vistazo pero no he consegido sacar muxo en claro.....esq no encuentro una buena ayuda para CreateProcessAs....

asirvent 03-06-2004 10:36:12

Hola
 
Creo q es esto lo q andas buscando:

//////////////////////////////////////////////////////////////////////

unit principal;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;


const
LOGON_WITH_PROFILE = 1;
LOGON_NETCREDENTIALS_ONLY = 2;

function CreateProcessWithLogon(
lpUsername: PWChar;
lpDomain: PWChar;
lpPassword: PWChar;
dwLogonFlags: DWORD;
lpApplicationName: PWChar;
lpCommandLine: PWChar;
dwCreationFlags: DWORD;
lpEnvironment: Pointer;
lpCurrentDirectory: PWChar;
const lpStartupInfo: TStartupInfo;
var lpProcessInfo: TProcessInformation
): BOOL; stdcall;


type
TForm1 = class(TForm)
Label3: TLabel;
Label5: TLabel;
b_ejecutar: TRxSpeedButton;
b_acercade: TRxSpeedButton;
b_cerrar: TRxSpeedButton;
Label6: TLabel;
open: TOpenDialog;
aplicacion: TEdit;
RxSpeedButton1: TRxSpeedButton;
procedure Button1Click(Sender: TObject);
private
public
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses funciones,acercade;

function CreateProcessWithLogon; external advapi32 name 'CreateProcessWithLogonW';

procedure TForm1.Button1Click(Sender: TObject);
var
wUsername, wDomain, wPassword, wApplicationName: WideString;
pwUsername, pwDomain, pwPassword, pwApplicationName: PWideChar;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
wUsername := 'USUARIO';
wDomain := 'DOMINIO';
wPassword := 'CLAVE';
wApplicationName := aplicacion.text;
pwUsername := Addr(wUsername[1]);
pwDomain := Addr(wDomain[1]);
pwPassword := Addr(wPassword[1]);
pwApplicationName := Addr(wApplicationName[1]);

FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
StartupInfo.cb := SizeOf(TStartupInfo);
if not CreateProcessWithLogon(pwUsername,pwDomain,pwPassword,LOGON_WITH_PROFILE,
pwApplicationName,nil,CREATE_DEFAULT_ERROR_MODE,
nil,nil,StartupInfo,ProcessInfo) then
RaiseLastOSError;
end;

//////////////////////////////////////////////////////////////////////

Con esto podras ejecutar aplicaciones utilizando permisos de otros usuarios.

un saludo


La franja horaria es GMT +2. Ahora son las 01:28:35.

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