POSICION DE VENTANA

05/07/2007 - 08:42 por Orfao | Informe spam
Hola...
Desde una macro invoco la calculadora de windows...
como hago para que se ubique en una posicion especifica cada vez que la
active.
En el mismo windows "noto" que si abro y cierro sucesivamente la
calculadora esta de va desplazando desde la esquina superior izquierda a la
inferior derecha...???
Mientras que en excel siempre se abre arriba y a la izquierda y deseo que
se abra en otra posicion (para no ocultar ciertos datos de la hoja) y no
tener que moverla manualmente a cada apertura .

Me alimento del conocimiento de todos
 

Leer las respuestas

#1 Héctor Miguel
06/07/2007 - 00:07 | Informe spam
hola, moises !

... macro invoco la calculadora de windows... como hago para que se ubique en una posicion especifica cada vez que la active.
... si abro y cierro sucesivamente la calculadora esta de va desplazando desde la esquina superior izquierda a la inferior derecha...???
... en excel... deseo que se abra en otra posicion (para no ocultar ciertos datos de la hoja) y no tener que moverla manualmente ..



1) copia/pega las siguientes lineas [p.e.] en un modulo de codigo 'normal'

Option Private Module
Declare Function BuscaVentana Lib "user32" Alias "FindWindowA" ( _
ByVal Clase As String, ByVal Titulo As String) As Long
Declare Function MueveVentana Lib "user32" Alias "MoveWindow" ( _
ByVal hWnd As Long, ByVal x As Long, ByVal y As Long, _
ByVal Ancho As Long, ByVal Alto As Long, ByVal Refresca As Long) As Long
Declare Function DimensionesDeVentana Lib "user32" Alias "GetWindowRect" ( _
ByVal hWnd As Long, xDim As Dimensiones) As Long
Type Dimensiones
Left As Long: Top As Long: Right As Long: Bottom As Long
End Type
Function LanzaCalculadora(Izq As Long, Arriba As Long)
Dim Calculadora As Long, d As Dimensiones
Shell "calc.exe", vbNormalFocus
Calculadora = BuscaVentana(vbNullString, "Calculadora") ' <= OJO con el idioma '
DimensionesDeVentana Calculadora, d
MueveVentana Calculadora, Izq, Arriba, d.Right - d.Left, d.Bottom - d.Top, 1
End Function

2) despues podras utilizar la funcion [LanzaCalculadora] agregando los parametros de *donde* quieres que se muestre
o sea, las coordenadas de inicio [medidas en puntos de pantalla de windows]: x-Izquierda / y-Arriba [p.e.]

Sub Prueba()
LanzaCalculadora 350, 200
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares