'Para crear el correo y enviarlo se deben crear los objetos
Dim sess As New NotesSession
Dim bd as new NotesDatabase
Dim doc as NotesDocument
Set bd = sess.GetDatabase("servidor","correo.nsf")
Set doc = bd.CreateDocument
doc.form = "memo"
doc.sendto = direccion.text
doc.subject = tema.text
doc.body = mensaje.text
doc.send(true)
unload me
' y luego destruir los objetos
Ya para matar la tarea notes que se nos queda abierta:
'Copiar todo esto en modulo de VB, y llamar desde donde lo deseemos al proceso MatarNotes
'
'***********************************************************
'Declaracion de constantes y funciones API usadas.
'
'constantes API usadas
Const PROCESS_ALL_ACCESS = &H1F0FFF
'funciones API usadas
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
'***********************************************************
'En el programa despues de todo el codigo con el que abrimos una sesion con Notes, abrimos una BD, enviamos el correo,.....
'cuando querramos finalizar la sesion con Notes tendremos que localizar si esta abierta la ventana de Notes con FindWindow, si asi es
'obtenemos el identificador del proceso de la ventana de Notes con GetWindowThreadProcessId, deberemos abrir una
'identificador de proceso para la aplicacion y todos los subprocesos (subventanas) que tenga abiertos con OpenProcess. Y finalmente
'mataremos el proceso notes con todos sus subprocesos mediante la funcion TerminateProcess.
Public sub MatarNotes()
Dim lngProcessID As Long
Dim lngReturnValue As Long
Dim lngProcess As Long
Dim hwnd as long
hwnd = FindWindow("Notes", vbNullString) 'Obtiene un manejador para la ventana de Notes, devuelve 0 sino existe
If (hwnd <> 0) Then
lngReturnValue = GetWindowThreadProcessId(hwnd, lngProcessID) 'Obtiene el identificador de proceso de la ventana en lngProccesID
lngProcess = OpenProcess(PROCESS_ALL_ACCESS, 0&, lngProcessID) 'Obtiene en lngProcess el identificador para todos los procesos abiertos por la aplicacion identificada por lngProcessId
lngReturnValue = TerminateProcess(lngProcess, 0&) 'finaliza los procesos indicados por lngProcess
End If
End If