Visual Basic - Maximizar - minimizar aplicaciones externas

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 80 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maximizar - minimizar aplicaciones externas

Publicado por jmlai (1 intervención) el 19/04/2020 11:42:00
Buenas,

Quiero poder maximizar y minimizar aplicaciones que están corriendo en windows mediante una aplicación.
He visto diferentes ejemplos en internet pero ninguno me funciona.

He visto que hace falta usar las funciones Showwindow y findwindow de user32.dll.

Cuando llego a la función Showwindow me salta la excepción "Se detecto PInvokestackinbalance". Una llamada a la función PInvoke 'Abrir aplicaciones!Abrir_aplicaciones.Form1::ShowWindow' impidió la correspondencia de la pila. Es posible que la razón sea que la signatura PInvoke administrada no coincida con la signatura de destino no administrada. Compruebe que la convención y los parámetros de llamada de la signatura PInvoke coinciden con la signatura no administrada de destino.

No se si el handle que entra en la función es correcta o no. ¿Hay forma de verificar con Spy++ que el handle que se obtiene de FindWindow es la de la aplicación?


El codigo que he usado es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'Función Api FindWindow para buscar el HWND
Private Declare Function FindWindow _
    Lib "user32" _
    Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
 
'   Función ShowWindow para maximizar , minimizar etc..
Private Declare Function ShowWindow _
    Lib "user32" ( _
        ByVal hwnd As Long, _
        ByVal nCmdShow As Long) As Long
 
Const SW_MINIMIZE As Integer = 2
Const SW_MAXIMIZE As Integer = 3
 
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
 
    Dim Handle As Long
 
    Handle = FindWindow(vbNullString, "NOTEPAD")
    ShowWindow(Handle, SW_MINIMIZE)
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Maximizar - minimizar aplicaciones externas

Publicado por gilman (359 intervenciones) el 20/04/2020 10:31:47
Esto no es VB6, es VBNet, deberías ponerlo en el foro de VBNet.
En cuanto al error, debes cambiar las declaraciones de las APIs, en VBNet debes usar el tipo Integer en vez de Long
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar