PDA

Ver la Versión Completa : Problemas al mostrar ventana de impresoras.


afxe
27-04-2018, 12:09:40
Buenas... no sé si he colocado correctamente el post, pero voy al tema: Tengo una aplicación ejecutándose en la nube, por "Terminal Server" (ya... no es propiamente la nube), pero el caso es que los usuario sólo tienen permiso para ejecutar este programa y cuando se cierra también se cierra la sesión de Terminal Server. El problema que tengo es que al llamar, desde una pantalla modal, a alguna pantalla de Windows, como la de selección de impresoras, mayormente (aunque también ha fallado con un DialogBox, showmessage, etc), dicha pantalla invocada se queda detrás de la aplicación, no tendría mayor problema si pudiera cambiar el "foco" al escritorio o a otro programa, y volver a focalizar mi programa, para hacer aparecer la pantalla auxiliar, pero al estar la sesión dedicada sólo a la ejecución de dicho programa, no tengo más remedio que echar abajo la sesión del usuario y que vuelva a conectarse, porque la sensación que da es que el programa se queda bloqueado.

¿Alguien a tenido y solucionado este problema?

Gracias y Saludos.

Casimiro Notevi
27-04-2018, 12:45:22
Te refieres a que conectas mediante terminal server a un equipo remoto donde ejecutas el programa, ¿no?
Es que lo de "la nube" confunde en la explicación.
Si es lo primero, sí que recuerdo haber tenido ese problema y de haberlo solucionado, pero fue hace bastantes años y no recuerdo la solución :confused:
A ver si encuentras algo haciendo una búsqueda por los foros, porque también se ha tratado aquí ese problema antes.

duilioisola
27-04-2018, 14:06:15
Prueba con esta solución
https://massuda.blogspot.com.es/2007/02/como-desabilitar-o-ghosting-do-windows.html

// Llama a este procedimiento en el OnCreate del formulario principal

procedure DesabilitarGhostingDoWindows;
var
User32: HMODULE;
DisableProcessWindowsGhosting: TProcedure;
begin
User32 := GetModuleHandle('USER32');
if User32 <> 0 then
begin
DisableProcessWindowsGhosting := GetProcAddress(User32, 'DisableProcessWindowsGhosting');
if Assigned(DisableProcessWindowsGhosting) then
begin
DisableProcessWindowsGhosting;
end;
end;
end;

afxe
27-04-2018, 18:53:56
Muchísimas gracias... lo probaré, a ver si deja de dar el problema. Por cierto, Casimiro, efectivamente, el programa se ejecuta localmente en un servidor y los usuarios se conectan con una sesión de terminal server.

Gracias de nuevo.