La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1192 - SIMULAR ´ENVIAR Y RECIBIR´ DESDE VB CON REFERENCIA OUTLOOK
Autor:  Fco. Antonio García
Estoy desarrolando aplicaciones que devuelven resultados en ficheros de texto. Ficheros que adjunto a un correo y por medio de Outlook se envían. En el destino existe otra aplicación que lee los correos de la bandeja de entrada y sus ficheros adjuntos, que se incorporan en una base de datos. Para poder automatizar al máximo me hace falta conocer si existe (y como se hace) la opción de "Enviar y Recibir" de OutLook. De esa forma el control del envío y de la recepción de los datos lo lleva la propia aplicación.

Agradezco de antemano la respuesta (aunque sea negativa para mi propósito). Gracias.

  Respuesta:  Javier Juambeltz
Podrías lidiar con el modelo de objetos de Outlook (utilizando VBA). Pero si lo único que te falta es ejecutar "Enviar y Recibir" podés probar la función SendKeys de Visual Basic que te permite, desde el código, simular una pulsación de teclas en cualquier aplicación. Ya que en Outlook se ejecuta "Enviar y Recibir" cuando pulsás F5, podés simular la pulsación de esta tecla.

Para probar puse dos botones de comando (Command1 y Command2). Con el primero se ejecuta el Outlook. Con el segundo, una vez que el Outlook está abierto, se le envía la pulsación de F5.

El código es el siguiente:

-----------------------------------------------------------
Dim outlId
Dim outlDirec As String
Private Sub Command1_Click()
outlDirec = "C:\Archivos de Programa\Microsoft Office\Office\outlook.exe"
outlId = Shell(outlDirec, 1)
End Sub
Private Sub Command2_Click()
If outlId <> 0 Then
AppActivate outlId
SendKeys "{F5}", False
Else
MsgBox "Error: No se pudo abrir Microsoft Outlook"
End If
End Sub
------------------------------------------------------------
Cualquier cosa, a las órdenes.
JaViEr