Pregunta: | 3898 - PONER VISIBLE UNA APLICACIÓN ABIERTA CON SHELL, 0 |
Autor: | Jose G. Montalvo |
Como se puede volver visible una aplicacion que ha activado invisible con RetVal = Shell("C:\WINDOWS\CALC.EXE", 0) |
Respuesta: | Daniel Catalá Pachés |
´En el modulo Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpszClassName As String, ByVal lpszWindow As String) As Long ´En mi aplicación consegui poner un icono con el gráfico de una calculadora que la ponía en primer plano. ´Es util si quiere por ejemplo que tu aplicación cuente con un bloc de notas y poder crear un texto nuevo, o recuperar el existente con el mismo botón. ´Este es el misterio de la aplicación. Private Sub imgCalc_Click() ´Hace la busqueda por el Titulo If FindWindow(vbNullString, "Calculadora") Then On Error Resume Next ´Este método activa la aplicación pasandole el control de ventana idCalc ´que hemos grabado la primera vez al cargarla. AppActivate idCalc Exit Sub End If idCalc = Shell("C:\windows\calc.exe", vbNormalFocus) End Sub |
Respuesta: | juan cecconi |
Mira, definitivamente tendras que utilizar las maravillosas API´s . Una opcion que se me ocurre (nunca lo he intentado) es utilizar la funcion FindWindow invocando la misma con el titulo de la ventana a buscar. Tambien podrias hacerlo haciendo una enumeracion de las ventanas con otra api (creo que EnumWindow) y busques de nuevo la ventana por el titulo. Una vez que obtienes el manipulador de la ventana puedes llamar una funcion que maneje las caracteristicas de esta ventana, creo que podes hacerlo con SetWindowPos y con la opcion de flag setear la opcion de visibe o alguna otra!!! Tal vez las apis no sean las correctas 100% pero si no son estas son alguna relacionada que figurara en la Ayuda (en la parte inferior, donde dice "See Also")!!! |