Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Piloter OUTLOOK par 1 appli VB6 --> comment contourner les messages de sécurité ?

3 réponses
Avatar
teddy
Bonjour,

J'ai créé un script VBS et une application VB6 qui pilotent Outlook 2003
(automation) avec consultation de mails et recopie de mails dans une base Access
pour des traitements ultérieurs.

J'ai 2 problèmes :

1- Je n'arrive pas à lancer une instance Outlook en précisant le profil
souhaité (comme on le ferait en ligne de commande avec un : OUTLOOK.EXE /profile
NomDuProfil) .
J'ai une boîte de dialogue imprévue par mon programme qui me demande le
profil à utiliser.
voici le code pour "attaquer" Outlook en automation :

' INITIALISATION objets OUTLOOK
Dim AppOutlook As Outlook.Application
Dim NspOutlook As NameSpace
Dim Dossier As MAPIFolder
Dim Message As MailItem

' Affectation des variables objets OUTLOOK
Set AppOutlook = New Outlook.Application
Set NspOutlook = AppOutlook.GetNamespace("MAPI")

' Dossier par défaut (Boîte de Réception)
Set Dossier = NspOutlook.GetDefaultFolder(olFolderInbox)


2 - J'ai une boîte de dialogue imprévue par mon programme qui indique "un
programme tente automatiquement d'ouvrir Outlook ... etc ...."
Il faut alors choisir dans un menu une durée accordée à l'automation : maximum
10 minutes !


En résumé, dois-je répondre à ces boîtes de dialogue dans mes programmes avec un
bricolage de SendKeys ou bien existe-t-il une "vraie" solution ?
Merci beaucoup par avance pour ces problèmes un peu particulier je l'avoue.

Message déjà posté sur microsoft.public.fr.scripting est sans aucue réponse.

Teddy

3 réponses

Avatar
Clive Lumb
teddy wrote:
Bonjour,

J'ai créé un script VBS et une application VB6 qui pilotent Outlook
2003 (automation) avec consultation de mails et recopie de mails dans
une base Access pour des traitements ultérieurs.

J'ai 2 problèmes :

1- Je n'arrive pas à lancer une instance Outlook en précisant le
profil souhaité (comme on le ferait en ligne de commande avec un :
OUTLOOK.EXE /profile NomDuProfil) .
J'ai une boîte de dialogue imprévue par mon programme qui me
demande le profil à utiliser.
voici le code pour "attaquer" Outlook en automation :

' INITIALISATION objets OUTLOOK
Dim AppOutlook As Outlook.Application
Dim NspOutlook As NameSpace
Dim Dossier As MAPIFolder
Dim Message As MailItem

' Affectation des variables objets OUTLOOK
Set AppOutlook = New Outlook.Application
Set NspOutlook = AppOutlook.GetNamespace("MAPI")

' Dossier par défaut (Boîte de Réception)
Set Dossier = NspOutlook.GetDefaultFolder(olFolderInbox)


2 - J'ai une boîte de dialogue imprévue par mon programme qui
indique "un programme tente automatiquement d'ouvrir Outlook ... etc
...."
Il faut alors choisir dans un menu une durée accordée à l'automation
: maximum 10 minutes !


En résumé, dois-je répondre à ces boîtes de dialogue dans mes
programmes avec un bricolage de SendKeys ou bien existe-t-il une
"vraie" solution ?
Merci beaucoup par avance pour ces problèmes un peu particulier je
l'avoue.

Message déjà posté sur microsoft.public.fr.scripting est sans aucue
réponse.

Teddy



Outlook redemption est la solution.
Dispo en freeware (il n'affiche un "nag screen" que lors de l'installation
du dll)
Voir ici
http://www.dimastr.com/redemption/

Clive
Avatar
Jean
J'avais le meme probleme pour mon automatisation. J'ai simplement repris une
DLL outlook 2000 de la version originale (sans sp et du CD d'installation
d'origine). Si j'ai bonne mémoire s'était "cdo.dll". Le fait de l'enregistrer
via regsvr32 et en ecrasant l'ancienne (en prenant soin de garder un backup)
suffisait.


"teddy" a écrit :

Bonjour,

J'ai créé un script VBS et une application VB6 qui pilotent Outlook 2003
(automation) avec consultation de mails et recopie de mails dans une base Access
pour des traitements ultérieurs.

J'ai 2 problèmes :

1- Je n'arrive pas à lancer une instance Outlook en précisant le profil
souhaité (comme on le ferait en ligne de commande avec un : OUTLOOK.EXE /profile
NomDuProfil) .
J'ai une boîte de dialogue imprévue par mon programme qui me demande le
profil à utiliser.
voici le code pour "attaquer" Outlook en automation :

' INITIALISATION objets OUTLOOK
Dim AppOutlook As Outlook.Application
Dim NspOutlook As NameSpace
Dim Dossier As MAPIFolder
Dim Message As MailItem

' Affectation des variables objets OUTLOOK
Set AppOutlook = New Outlook.Application
Set NspOutlook = AppOutlook.GetNamespace("MAPI")

' Dossier par défaut (Boîte de Réception)
Set Dossier = NspOutlook.GetDefaultFolder(olFolderInbox)


2 - J'ai une boîte de dialogue imprévue par mon programme qui indique "un
programme tente automatiquement d'ouvrir Outlook ... etc ...."
Il faut alors choisir dans un menu une durée accordée à l'automation : maximum
10 minutes !


En résumé, dois-je répondre à ces boîtes de dialogue dans mes programmes avec un
bricolage de SendKeys ou bien existe-t-il une "vraie" solution ?
Merci beaucoup par avance pour ces problèmes un peu particulier je l'avoue.

Message déjà posté sur microsoft.public.fr.scripting est sans aucue réponse.

Teddy






Avatar
teddy
Ok Jean, je vais essayer le "truc". Merci !
On m'a aussi parlé sur le Net d'un ClickYes.exe (petit utilitaire
"mystérieux" qui permet de passer outre la fenêtre de sécurité Outlook quand
on fait de l'automation avec un script VBS ou avec VB).

Pour info, j'ai découvert (sur un site américain) que pour lancer une
instance d'Outlook avec un profil particulier, il me suffisait d'ouvrir une
session avec l'objet NameSpace come suit :
Syntaxe VB -> objNameSpace.Logon Profile,Password,ShowDialog,NewSession

Teddy


"Jean" a écrit dans le message de news:

J'avais le meme probleme pour mon automatisation. J'ai simplement repris
une
DLL outlook 2000 de la version originale (sans sp et du CD d'installation
d'origine). Si j'ai bonne mémoire s'était "cdo.dll". Le fait de
l'enregistrer
via regsvr32 et en ecrasant l'ancienne (en prenant soin de garder un
backup)
suffisait.


"teddy" a écrit :

Bonjour,

J'ai créé un script VBS et une application VB6 qui pilotent Outlook 2003
(automation) avec consultation de mails et recopie de mails dans une base
Access
pour des traitements ultérieurs.

J'ai 2 problèmes :

1- Je n'arrive pas à lancer une instance Outlook en précisant le
profil
souhaité (comme on le ferait en ligne de commande avec un : OUTLOOK.EXE
/profile
NomDuProfil) .
J'ai une boîte de dialogue imprévue par mon programme qui me
demande le
profil à utiliser.
voici le code pour "attaquer" Outlook en automation :

' INITIALISATION objets OUTLOOK
Dim AppOutlook As Outlook.Application
Dim NspOutlook As NameSpace
Dim Dossier As MAPIFolder
Dim Message As MailItem

' Affectation des variables objets OUTLOOK
Set AppOutlook = New Outlook.Application
Set NspOutlook = AppOutlook.GetNamespace("MAPI")

' Dossier par défaut (Boîte de Réception)
Set Dossier = NspOutlook.GetDefaultFolder(olFolderInbox)


2 - J'ai une boîte de dialogue imprévue par mon programme qui indique
"un
programme tente automatiquement d'ouvrir Outlook ... etc ...."
Il faut alors choisir dans un menu une durée accordée à l'automation :
maximum
10 minutes !


En résumé, dois-je répondre à ces boîtes de dialogue dans mes programmes
avec un
bricolage de SendKeys ou bien existe-t-il une "vraie" solution ?
Merci beaucoup par avance pour ces problèmes un peu particulier je
l'avoue.

Message déjà posté sur microsoft.public.fr.scripting est sans aucue
réponse.

Teddy