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