Como ocultar ventana

Iniciado por 3k1n0x, 23 Mayo 2007, 03:04 AM

0 Miembros y 1 Visitante están viendo este tema.

3k1n0x

Cita de: -Freeze- en 24 Mayo 2007, 17:02 PM
Ya entendi tu lo que no quieres que se vea es la ventana que dice que algo se esta cargando en "ella" cierto???

Bueno solamente utiliza esto:

app.activate aqui el nombre de la ventana , aqui si quieres esperar (no se como se usa)

Ejemplo:

app.activate "Conversación"

Eso activa la ventana de la conversación por MSN q este  activa....

Creo q te solucione el problema o no????

si supon q se esta enviando un archivo comprimido y no sabes si al final del titulo de la ventana dice Conversacion o Conversation o quien sabe, hay q hacerlo solo a la q se esta cargando y aparte cada 30seg, de todas formas creo q encontre una forma por "fuerza bruta" xD vere si funka pero si hay alguna idea no staria mal salu2s
T3fL0n -> 3k1n0x

Freeze.

Ok...

Solo dime el nombre que sale en la ventana que quieres ocultar...

3k1n0x

si pero lo que se sabe es q se acaba de abrir, el titulo de la ventana varia, por ahi dijeron que saque el handle de la ventana q tiene el foco y luego usar la api showwindown con el handle, en eso estoy pero no se
T3fL0n -> 3k1n0x

~~

Una idea.

Con la api del msn puedes obtener los nicks de los contactos no? pues la traes al frente, y el titulo de la ventana tendra q contener por fuerza el nick.
Haces un listado de todas las ventanas, buscas la q contenga el nick, obtienes el handle y la ocultas...

Freeze.

Si el titulo de la ventana varia encuentra algo ue siempre este...

Por ejemplo:
En las conversaciones de MSN siempre varia el contacto pero al final... siempre dice "Conversación"

3k1n0x

Cita de: E0N en 24 Mayo 2007, 17:21 PM
Una idea.

Con la api del msn puedes obtener los nicks de los contactos no? pues la traes al frente, y el titulo de la ventana tendra q contener por fuerza el nick.
Haces un listado de todas las ventanas, buscas la q contenga el nick, obtienes el handle y la ocultas...
si pero depende de si se tiene "ver contactos por direccion de email" o "ver contactos por nombre para mostrar" si la tienen por la primera el titulo seria "<direccion> - Conv.." y si no seria "<nombre para mostrar> - Conv.."

Cita de: -Freeze- en 24 Mayo 2007, 17:23 PM
Si el titulo de la ventana varia encuentra algo ue siempre este...

Por ejemplo:
En las conversaciones de MSN siempre varia el contacto pero al final... siempre dice "Conversación"

aveces x estar en ingles dice Conversation o incluso dice Conversaci%n y ademas es posible que esten otras ventanas abiertas con eso mismo
T3fL0n -> 3k1n0x

3k1n0x

ya tengo la idea de como hacerlo pero no se hacerlo, se hace creeeo con get focus, que obtiene el handle de la ventana que tiene el foco del teclado (eso es!), con esto me da el handle de la ventana, ahora el problema es q solo da el handle del formulario y no de ventanas externas alguien sabe como hacer para saber el handle de ventanas externas?

Private Declare Function apiGetFocus Lib "user32" _
        Alias "GetFocus" _
         () As Long
         
Function fhWnd(ctl As Control) As Long
    On Error Resume Next
    ctl.SetFocus
    If Err Then
        fhWnd = 0
    Else
        fhWnd = apiGetFocus
    End If
    On Error GoTo 0
End Function
T3fL0n -> 3k1n0x

~~

Creo q usas mal la api... para obtener el hadle de la ventana q tiene el foco tienes q hacer esto: (no estoy 100% seguro)

Private Declare Function GetFocus Lib "user32" () As Long
h& = GetFocus&()


Y te kedaria en h& el handle.




Pero mira esta api:
http://support.microsoft.com/kb/147659/es

Te permite obtener el handle e una ventana sin saber su titulo exato.. espero q te sirva ;)

Freeze.


Tengu

hola,por lo que decia Freeze el codigo seria Appactivate, sin el punto,algo asi para tener en cuenta los idiomas de msn:
on error resume next
appactivate "Conversación"
appactivate "Conversati..."
appactivate "..."

y asi t activara cualquier ventana q haya abierta si es q hay una abierta y tal vez si quieres ocultar la ventana podrias minimizarlas todas para q no se interrumpa la transferencia del archivo
     Const KEYEVENTF_KEYUP = &H2
     Const VK_LWIN = &H5B
     

     Call keybd_event(VK_LWIN, 0, 0, 0)
     Call keybd_event(77, 0, 0, 0)
     Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
una duda tu quieres q se autoenvie el mismo programa luego de comprimirse?

Encuentros por Video y Chat !!