Accueil > > > AIDE SUR L'AUTOMATION LOTUS NOTES SOUS VB
AIDE SUR L'AUTOMATION LOTUS NOTES SOUS VB
Information sur la source
Description
Bonjour à tous Voici une aide vraiment bien détaillée pour tous ceux qui veulent utiliser Lotus Notes dans leur application VB et qui n'y arrivent pas...ça arrive des fois !!!!;) Je vous met le lien vers cette page car le document (900ko en pdf) est trop gros pour aller sur ce site ftp://ftp.boulder.ibm.com/software/lotus/pub /lotusweb/ssdev/lsvbrb.pdf Bon code à tous SeHN
Source
- Option Explicit
- '---------- API -----------
- 'pour faire passer au premier plan
- Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
- 'pour ouvrir la fenetre
- Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
- 'pour verifier si la Lotus est ouvert
- Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
-
- Dim sSrvr As String 'the mail server for the current user
- Dim MailDbName As String 'THe current users notes mail database name
- Dim UserName As String 'The current users notes name
-
- Dim retval As Variant 'Holds return value for functions handle
-
- '---------------- fonction ouverture de session Notes -----------
- Function CreateNotesSession() As Boolean
- Const notesclass$ = "NOTES"
- Const SW_SHOWMAXIMIZED = 3 'plein ecran
- Const SW_SHOWMMINIZED = 2 'reduire
- Const SW_SHOWWINDOW = 1 'fenetre
- Const SW_SHOW = 5
-
- Dim Lotus_Session As Object
- Dim rc&
- Dim lotusWindow&
-
- lotusWindow = FindWindow(notesclass, vbNullString)
-
- Set Lotus_Session = CreateObject("Notes.NotesSession")
- sSrvr = Lotus_Session.GETENVIRONMENTSTRING("MailServer", True)
- MailDbName = Lotus_Session.GETENVIRONMENTSTRING("MailFile", True)
- UserName = Lotus_Session.UserName
-
- DoEvents
- 'Ouverture de Lotus Notes
- retval = Shell("C:\APPLI\Notes5\notes.exe =h:\notes\notes.ini", vbMaximizedFocus)
-
- 'verifier que Lotus est bien ouvert (recupere le handle)
- lotusWindow = FindWindow(notesclass, vbNullString)
- If lotusWindow <> 0 Then
- rc = ShowWindow(lotusWindow, SW_SHOW)
- rc = SetForegroundWindow(lotusWindow)
- CreateNotesSession = True
- Else
- CreateNotesSession = False
- End If
- End Function
- Sub CreateMailandAttachFileAdr(Optional IsSubject As String = "", Optional SendToAdr As String, Optional CCToAdr As String, Optional BCCToAdr As String = "", Optional Attach1 As String = "", Optional Attach2 As String = "", Optional body As String = "")
- Const EMBED_ATTACHMENT As Integer = 1454
- Const EMBED_OBJECT As Integer = 1453
- Const EMBED_OBJECTLINK As Integer = 1452
-
- Dim s As Object ' use back end classes to obtain mail database name
- Dim db As Object '
- Dim doc As Object ' front end document
- Dim beDoc As Object ' back end document
- Dim workspace As Object ' use front end classes to display to user
- Dim bodypart As Object '
- Dim bodyAtt As Object '
- Dim lbsession As Boolean
-
- lbsession = CreateNotesSession
-
- If lbsession Then
- 'cree la session Lotus Notes
- Set s = CreateObject("Notes.Notessession")
- 'se connecte a sa database
- Set db = s.getDatabase(sSrvr, MailDbName)
- If db.ISOPEN = True Then
- 'database deja ouvert
- Else
- Call db.Openmail
- End If
- 'cree un document memo
- Set beDoc = db.CreateDocument
- beDoc.Form = "Memo"
-
- 'construction du mail
- Set bodypart = beDoc.CREATERICHTEXTITEM("Body")
- 'beDoc.From = "Moi" 'inutile
- beDoc.SendTo = SendToAdr
- beDoc.CopyTo = CCToAdr
- beDoc.BlindCopyTo = BCCToAdr
- beDoc.Subject = IsSubject
- '-----------------------------------------
- 'Remarque si destinataire multiple il suffie de mettre un tableau d'e-mail dans SendTo (CopyTo,BlindCopyTo)
- 'exemple :
- 'Dim recip(25) as variant
- 'recip(0) = "emailaddress1"
- 'recip(1) = "emailaddress2" e.t.c
- 'beDoc.sendto = recip
- '----------------------------------------
- ' documents joint 1
- If Len(Attach1) > 0 Then
- If Len(Dir(Attach1)) > 0 Then
- Set bodyAtt = bodypart.EmbedObject(EMBED_ATTACHMENT, "", Attach1, Dir(Attach1))
- End If
- End If
-
- ' documents joint 2
- If Len(Attach2) > 0 Then
- If Len(Dir(Attach2)) > 0 Then
- Call bodyAtt.EmbedObject(EMBED_ATTACHMENT, "", Attach2, Dir(Attach2))
- End If
- End If
-
- 'Affichage du mail dans Lotus Notes
- Set workspace = CreateObject("Notes.NotesUIWorkspace")
- Call workspace.EditDocument(True, beDoc).FieldSetText("Body", body)
-
- Set s = Nothing
- Else
- MsgBox "Votre Lotus Notes est fermé !"
- End If
- End Sub
- Private Sub envoyer_Click()
- CreateMailandAttachFileAdr Msujet.Text, Mto.Text, Mcc.Text, Mbcc.Text, MdocJoint1.Text, MdocJoint2.Text, Mbody.Text
- End Sub
Option Explicit
'---------- API -----------
'pour faire passer au premier plan
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
'pour ouvrir la fenetre
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
'pour verifier si la Lotus est ouvert
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim sSrvr As String 'the mail server for the current user
Dim MailDbName As String 'THe current users notes mail database name
Dim UserName As String 'The current users notes name
Dim retval As Variant 'Holds return value for functions handle
'---------------- fonction ouverture de session Notes -----------
Function CreateNotesSession() As Boolean
Const notesclass$ = "NOTES"
Const SW_SHOWMAXIMIZED = 3 'plein ecran
Const SW_SHOWMMINIZED = 2 'reduire
Const SW_SHOWWINDOW = 1 'fenetre
Const SW_SHOW = 5
Dim Lotus_Session As Object
Dim rc&
Dim lotusWindow&
lotusWindow = FindWindow(notesclass, vbNullString)
Set Lotus_Session = CreateObject("Notes.NotesSession")
sSrvr = Lotus_Session.GETENVIRONMENTSTRING("MailServer", True)
MailDbName = Lotus_Session.GETENVIRONMENTSTRING("MailFile", True)
UserName = Lotus_Session.UserName
DoEvents
'Ouverture de Lotus Notes
retval = Shell("C:\APPLI\Notes5\notes.exe =h:\notes\notes.ini", vbMaximizedFocus)
'verifier que Lotus est bien ouvert (recupere le handle)
lotusWindow = FindWindow(notesclass, vbNullString)
If lotusWindow <> 0 Then
rc = ShowWindow(lotusWindow, SW_SHOW)
rc = SetForegroundWindow(lotusWindow)
CreateNotesSession = True
Else
CreateNotesSession = False
End If
End Function
Sub CreateMailandAttachFileAdr(Optional IsSubject As String = "", Optional SendToAdr As String, Optional CCToAdr As String, Optional BCCToAdr As String = "", Optional Attach1 As String = "", Optional Attach2 As String = "", Optional body As String = "")
Const EMBED_ATTACHMENT As Integer = 1454
Const EMBED_OBJECT As Integer = 1453
Const EMBED_OBJECTLINK As Integer = 1452
Dim s As Object ' use back end classes to obtain mail database name
Dim db As Object '
Dim doc As Object ' front end document
Dim beDoc As Object ' back end document
Dim workspace As Object ' use front end classes to display to user
Dim bodypart As Object '
Dim bodyAtt As Object '
Dim lbsession As Boolean
lbsession = CreateNotesSession
If lbsession Then
'cree la session Lotus Notes
Set s = CreateObject("Notes.Notessession")
'se connecte a sa database
Set db = s.getDatabase(sSrvr, MailDbName)
If db.ISOPEN = True Then
'database deja ouvert
Else
Call db.Openmail
End If
'cree un document memo
Set beDoc = db.CreateDocument
beDoc.Form = "Memo"
'construction du mail
Set bodypart = beDoc.CREATERICHTEXTITEM("Body")
'beDoc.From = "Moi" 'inutile
beDoc.SendTo = SendToAdr
beDoc.CopyTo = CCToAdr
beDoc.BlindCopyTo = BCCToAdr
beDoc.Subject = IsSubject
'-----------------------------------------
'Remarque si destinataire multiple il suffie de mettre un tableau d'e-mail dans SendTo (CopyTo,BlindCopyTo)
'exemple :
'Dim recip(25) as variant
'recip(0) = "emailaddress1"
'recip(1) = "emailaddress2" e.t.c
'beDoc.sendto = recip
'----------------------------------------
' documents joint 1
If Len(Attach1) > 0 Then
If Len(Dir(Attach1)) > 0 Then
Set bodyAtt = bodypart.EmbedObject(EMBED_ATTACHMENT, "", Attach1, Dir(Attach1))
End If
End If
' documents joint 2
If Len(Attach2) > 0 Then
If Len(Dir(Attach2)) > 0 Then
Call bodyAtt.EmbedObject(EMBED_ATTACHMENT, "", Attach2, Dir(Attach2))
End If
End If
'Affichage du mail dans Lotus Notes
Set workspace = CreateObject("Notes.NotesUIWorkspace")
Call workspace.EditDocument(True, beDoc).FieldSetText("Body", body)
Set s = Nothing
Else
MsgBox "Votre Lotus Notes est fermé !"
End If
End Sub
Private Sub envoyer_Click()
CreateMailandAttachFileAdr Msujet.Text, Mto.Text, Mcc.Text, Mbcc.Text, MdocJoint1.Text, MdocJoint2.Text, Mbody.Text
End Sub
Historique
- 18 novembre 2004 20:07:31 :
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|