Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Problemas al mostrar ventana de impresoras. (https://www.clubdelphi.com/foros/showthread.php?t=93041)

afxe 27-04-2018 12:09:40

Problemas al mostrar ventana de impresoras.
 
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...o-windows.html

Código Delphi [-]
// 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.


La franja horaria es GMT +2. Ahora son las 20:31:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi