Imprimir página | Cerrar ventana

Abrir aplicación con tamaño y posición

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86281
Fecha de impresión: 26/Marzo/2026 a las 15:42


Tema: Abrir aplicación con tamaño y posición
Publicado por: Nomada
Asunto: Abrir aplicación con tamaño y posición
Fecha de publicación: 03/Marzo/2022 a las 19:11
Buenas.
Cómo puedo abrir una aplicación con un tamaño de ventana y posición determinados?

Gracias.



Respuestas:
Publicado por: Nomada
Fecha de publicación: 05/Marzo/2022 a las 11:01
Veamos.
Como ahora las pantallas son anchas, me gustaría desde un formulario de una base de datos de Access en la parte derecha, abrir con un botón Excel, un navegador, o cualquier aplicación en la izquierda. Pero, cómo indicarle desde el botón del formulario de Access, el tamaño y su posición de la ventana de la nueva aplicacion.?.

Un saludo.


Publicado por: xavi
Fecha de publicación: 06/Marzo/2022 a las 09:59
A ver si esto te sirve

#If Win64 Then
    Private Declare PtrSafe Sub SetWindowPos Lib "user32" (ByVal hwnd&, ByVal hWndInsertAfter&, ByVal x&, ByVal y&, ByVal cx&, ByVal cy&, ByVal wFlags&)
    Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#Else
    Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd&, ByVal hWndInsertAfter&, ByVal x&, ByVal y&, ByVal cx&, ByVal cy&, ByVal wFlags&)
    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#End If

Global Const HWND_TOP = 0
Global Const SWP_NOZORDER = &H14

Function SizeAccess(cx As Long, cy As Long, cHeight As Long, cWidth As Long)
    On Error GoTo ErrorHandler

    Dim h    As Long
   
    h = Application.hWndAccessApp
    
    SetWindowPos h, HWND_TOP, cx, cy, cWidth, cHeight, SWP_NOZORDER

ExitProcedure:
    Exit Function

ErrorHandler:
    MsgBox "Error!!"
    Resume ExitProcedure
End Function


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Nomada
Fecha de publicación: 06/Marzo/2022 a las 10:29
Gracias Xavi, pero creo que no me he explicado.
Tengo un base de datos en Access. Cuando la abro, ella sola se sitúa en el lado derecho con un tamaño predeterminado. Ahora deseo que al abrir otra aplicación (Excel, Navegador, Bloc de notas, etc.) desde un botón de comando perteneciente a un formulario de la base de datos, su ventana se abra a la izquierda y con un tamaño dado por mi.

Poniendo de ejemplo el siguiente código donde se abre la web mvp-access desde el navegador Edge. ¿Cómo le diría, utilizando un botón de comando, que lo abriera en una ventana a la izquierda y con un tamaño dado?

Shell "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe http://www.mvp-access.com/foro/access-y-vba_forum1.html"

Un saludo.


Publicado por: xavi
Fecha de publicación: 06/Marzo/2022 a las 15:02
Pues buscando, justo después del Shell, el Handle de la aplicación que acabas de abrir y utilizar la misma API SetWindowPos para posicionarla.

Deberás buscar como localizar una determinada ventana de las que tienes abiertas. Se que lo tenia por algún sitio pero ahora voy pillado de tiempo.

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Nomada
Fecha de publicación: 06/Marzo/2022 a las 18:48
Gracias Xavi.
No entiendo mucho lo que dices, y como no me corre prisa, cuando encuentres el código te agradecería que me lo enseñes.
De nuevo gracias



Imprimir página | Cerrar ventana