PDA

Ver la Versión Completa : Swichdesktop del foro!


marceloalegre
18-05-2005, 20:11:35
Que tal, en un post del foro existen unos ejemplos de crear un escritorio con HDesk y ejecutar despues una aplicacion.... (esta muy bueno)

Mi pregunta el la siguiente:

cuando hago el switchdesktop (lockdesktop);

ahi cambie al otro escritorio... despues cuaquier accion que haga queda en el escritorio anterior...

yo quiero mostrar una imagen que dice que la pc esta bloqueada, tengo un formshow donde cargo todo... como hago que eso salga en el nuevo escritorio y no en el anterior??

marceloalegre
19-05-2005, 02:10:16
nadie lo ha usado? :(

FDB
19-05-2005, 09:37:17
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...


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!