vb6 windows-xp remote-desktop terminal-services

vb6 - ¿Cómo detener la maximización de la forma inicial cuando se ejecuta como un programa RDP de inicio?



windows-xp remote-desktop (1)

El formulario de inicio en mi aplicación VB6 se comporta de manera extraña cuando se inicia en una sesión de Servicios de Terminal Server (Escritorio Remoto), donde tanto el servidor como el cliente son máquinas XP Pro. El formulario debe estar centrado, pero en realidad se maximiza y su contenido va a la parte superior izquierda y se ve muy extraño. Tenga en cuenta que esto solo ocurre cuando la ruta de la aplicación se utiliza para el campo "Iniciar el siguiente programa en la conexión" en la pestaña Programa en el cliente RDP.

Aparentemente existe una solución si está ejecutando el Servidor que tiene la herramienta de configuración de TS: http://www.windows-server-answers.com/microsoft/Windows-Terminal-Services/29117908/start-program-on-connection--it -isnt-centered.aspx

Pero ambas máquinas son XP Pro, así que no puedo obtener la configuración de TS.

Vea el proyecto de ejemplo VB6 aquí: Enlace al archivo zip en Google Docs

Si simplemente crea un EXE del proyecto anterior (que se ejecuta con un formulario centrado no maximizado cuando se ejecuta normalmente), y utilice esta ruta EXE al configurar el campo "Iniciar el siguiente programa en la conexión" en la pestaña Programa en el cliente RDP , encontrará que la aplicación comienza con la forma maximizada con su contenido en la esquina superior izquierda.


Aparentemente Terminal Server está iniciando su aplicación de inicio con la función ShellExecute , pasando SW_MAXIMIZE para nShowCmd lugar de SW_SHOWDEFAULT .

Puedes arreglarlo con un truco simple en el evento Form_Resize como este

Option Explicit Private m_bActivated As Boolean Private Sub Command_Click() Me.Text = "HELLO" End Sub Private Sub Form_Resize() If Not m_bActivated Then m_bActivated = True WindowState = vbNormal End If End Sub