dudas visual basic!

Iniciado por Tyrz, 22 Marzo 2007, 21:27 PM

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

Tyrz

hola! tengo un par de dudas de vb y espero q me las solucioneis  :D bueno alla voy.
Como puedo saber usando la api de msn cuando alguien a abierto o cerrado una ventana de msn? para hacer por ejemplo una especie de contestador.
y para cerrar un ventana de msn? por ejemplo
msn.instantmessage "msn@hotmail.com" 'para abrir la ventana
sendkeys "lo que quiera"
y ahora cerrarla? MUCHAS GRACIAS ;D
Web dedicada por completo al surf. Hablamos de tablas de surf, videos de surf, fotos, juegos y mucha información sobre como aprender a surfear, spots famosos como mundaka, pipeline y zonas como vizcaya, surf españa, sopelana y mucho más. Trucos y peligros del surf. A que esperas? Entra en  Surf

Jareth

AppActivate "Conversación" en un timer,con un on error resume next pues eso:

on error resume next
AppActivate "Conversación"
Sendkeys "No estoy lo siento..."
Sendkeys "{Enter}"
call cerrar_ventana("Conversación")

Y en un modulo:

Option Explicit



'Declaraciónes apis

' Lista las ventanas
Declare Function EnumWindows Lib "user32" ( _
                 ByVal wndenmprc As Long, _
                 ByVal lParam As Long) As Long

'Recupera el texto de la misma
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" ( _
                 ByVal hwnd As Long, _
                 ByVal lpString As String, _
                 ByVal cch As Long) As Long

'Para finalizar dicha ventana
Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
                 ByVal hwnd As Long, _
                 ByVal wMsg As Long, _
                 ByVal wParam As Long, _
                 lParam As Any) As Long


'Constantes para usar con SendMessage
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060&

'Almacena el caption de la vaentana a cerrar
Private El_titulo As String


'-------------------------------------------------------------


' Recibe el título parcial o igual de las ventanas a cerrar
Public Sub Cerrar_ventana(El_Caption As String)
    El_titulo = El_Caption
    Call EnumWindows(AddressOf EnumCallback, 0)
End Sub


' Función para recorrer las ventanas abiertas
Public Function EnumCallback(ByVal A_hwnd As Long, _
                ByVal param As Long) As Long

Dim buffer As String * 256
Dim Titulo_Win As String
Dim Size_buffer As Long

    'Retorna la cantidad de caracteres del título de la ventana actual
    Size_buffer = GetWindowText(A_hwnd, buffer, Len(buffer))
    'Elimina los espacios nulos de la cadena
    Titulo_Win = Left$(buffer, Size_buffer)
   
    'si se encuentra la cadena en el caption de la ventana se cierra
    If InStr(Titulo_Win, El_titulo) <> 0 Then
       
        ' Finaliza la ventana
        SendMessage A_hwnd, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&
    End If

    ' Esto continúa enumerando las siguientes ventanas de windows
    EnumCallback = 1
End Function

El timer ponlo el intervalo que quieras,otra cosa,seria bueno que guardase lso caption de las ventanas y comprobase si en x tiempo contestó ya a ese,para no repetir todo el rato por ejemplo si envia 2 mensajes,nosé ahi como veas.
Saludos.

Tyrz

Web dedicada por completo al surf. Hablamos de tablas de surf, videos de surf, fotos, juegos y mucha información sobre como aprender a surfear, spots famosos como mundaka, pipeline y zonas como vizcaya, surf españa, sopelana y mucho más. Trucos y peligros del surf. A que esperas? Entra en  Surf