![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
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 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|