Ver Mensaje Individual
  #4  
Antiguo 20-09-2006
johnyague johnyague is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Reputación: 0
johnyague Va por buen camino
Retomando la idea.

Segui haciendo pruebas con:


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
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;





Pero siendoles sincero no se como usarlo luego de hacer este procedimiento ya todo procedimiento que realice tiene permisos de administrador?

Cuando compilo el codigo me sale:

[Warning] Unit1.pas(33): Symbol 'Win32Check' is specific to a platform
[Error] Unit1.pas(33): Undeclared identifier: 'CreateProcessWithLogonW'
[Fatal Error] Prueb.dpr(5): Could not compile used unit 'Unit1.pas'

Creeria que me hace falta:


Código Delphi [-]
function CreateProcessWithLogon; external 'advapi32.dll' name 'CreateProcessWithLogonW';





Pero donde lo coloco... mejor dicho me queda asi y no funciona


Código Delphi [-]

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function CreateProcessWithLogon; external 'advapi32.dll' name 'CreateProcessWithLogonW';
procedure TForm1.Button1Click(Sender: TObject);
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;
end.







Que hago...????
Responder Con Cita