Ver Mensaje Individual
  #3  
Antiguo 19-05-2005
FDB FDB is offline
Miembro
 
Registrado: feb 2005
Posts: 40
Reputación: 0
FDB Va por buen camino
Hola!

Veamos, supongo que al hilo que te refieres, fué al que comencé yo y que Roman resolvió con un estupendo ejemplo... asi que a ver...

Código Delphi [-]
procedure TMainForm.FormCreate(Sender: TObject);
const
 Flags = DESKTOP_CREATEWINDOW or DESKTOP_SWITCHDESKTOP;
begin
 LockDesktop := CreateDesktop('LockDesktop', nil, nil, 0, Flags, nil);
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
 CloseDesktop(LockDesktop);
end;
procedure TMainForm.ExecuteLockApp;
var
 StartInfo: TStartupInfo;
 ProcInfo: TProcessInformation;
begin
 FillChar(StartInfo, SizeOf(StartInfo), 0);
 StartInfo.cb := SizeOf(StartInfo);
 StartInfo.lpDesktop := PChar('LockDesktop');
 CreateProcess('LockApp.exe', nil, nil, nil, false, 0, nil, nil, StartInfo, ProcInfo);
 SwitchDesktop(LockDesktop);
end;

Si te fijas, en la linea:

CreateProcess('LockApp.exe', nil, nil, nil, false, 0, nil, nil, StartInfo, ProcInfo);

Esta linea lo que hace es ejecutar la aplicación LockApp.exe en el escritorio que previamente se ha creado.. de forma que se te crea el escritorio (por lo tanto el anterior se te queda ocultado) y sobre el nuevo se te muestra la aplicación (lockapp.exe).

Por tanto el exe que ejecuta el nuevo escritorio es diferente al que muestra el mensaje de "Bloqueado".

Espero que lo entiendas, ya nos diras

Saludos!
Responder Con Cita