OVH Cloud OVH Cloud

[HS] (un peu ?) API : FindWindow

12 réponses
Avatar
papou
Bonjour à toutes et à tous
Et meilleurs voeux pour la nouvelle année 2005.
Dans le cadre d'un petit développement (en VBA), j'utilise la fonction API
FindWindow puis SetActiveWindow.
Le but est de m'assurer que la fenêtre d'un message Outlook est
effectivement active avant que je n'effectue un coller de quelques lignes
issues d'un document Word (pour l'instant je n'ai pas trouvé de solution
alternative à ce collage).

Voici ce que j'utilise actuellement et qui ne fonctionne pas tout à fait
comme je le souhaite (aléatoirement ou pas du tout pour le collage) :
(La méthode Display appartient à l'objet OLE Outlook Mailitem déclaré plus
haut dans mon code)
MessageOutlk.Display
'On recherche la fenêtre Outlook
Dim LaFen As Long
LaFen = FindWindow(vbNullString, "Programme COMET : votre planning -
Message")
'On la défini comme étant celle active...
SetActiveWindow (LaFen)
'...avant de coller
SendKeys "^v", True

Mon soucis est que ne sachant pas ce que je dois renseigner au niveau du
premier argument (ByVal lpClassName As String), j'utilise VbNullString, mais
je me demande si effectivement ce n'est pas là l'origine de mon problème ?
J'ai essayé pour cet argument "Outlook.Application" mais ça ne fonctionne
pas mieux.
Si quelqu'un avait une piste ?

Merci d'avance
Cordialement
Pascal

2 réponses

1 2
Avatar
ng
> Si tu ne l'as jamais fait c'est un peu compliqué (il faut maitrisé le


oups je voulais dire maitriser :D

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

ng wrote:
Alors une solution serait de les envoyer toi même via winsock.
Si tu ne l'as jamais fait c'est un peu compliqué (il faut maitrisé le
standard MIME pour l'encodage).


papou wrote:
Oui
L'une des particularités est que chaque mail à envoyer se trouve dans
une section d'un document Word issu d'un publipostage et que je dois
y ajouter des pièces jointes.
Cordialement
Pascal


"ng" a écrit dans le message de
news:%
Ton objectif est bien d'envoyer en email ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

papou wrote:
Bonjour
Excuse moi mais je ne comprend pas ta proposition ?
Cordialement
Pascal

"ng" a écrit dans le message de
news:%
Pourquoi ne pas envoyer le message toi même, sans passer par
outlook ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

papou wrote:
Bonjour à toutes et à tous
Et meilleurs voeux pour la nouvelle année 2005.
Dans le cadre d'un petit développement (en VBA), j'utilise la
fonction API FindWindow puis SetActiveWindow.
Le but est de m'assurer que la fenêtre d'un message Outlook est
effectivement active avant que je n'effectue un coller de
quelques lignes issues d'un document Word (pour l'instant je
n'ai pas trouvé de solution alternative à ce collage).

Voici ce que j'utilise actuellement et qui ne fonctionne pas tout
à fait comme je le souhaite (aléatoirement ou pas du tout pour le
collage) : (La méthode Display appartient à l'objet OLE Outlook
Mailitem déclaré plus haut dans mon code)
MessageOutlk.Display
'On recherche la fenêtre Outlook
Dim LaFen As Long
LaFen = FindWindow(vbNullString, "Programme COMET : votre
planning - Message")
'On la défini comme étant celle active...
SetActiveWindow (LaFen)
'...avant de coller
SendKeys "^v", True

Mon soucis est que ne sachant pas ce que je dois renseigner au
niveau du premier argument (ByVal lpClassName As String),
j'utilise VbNullString, mais je me demande si effectivement ce
n'est pas là l'origine de mon problème ? J'ai essayé pour cet
argument "Outlook.Application" mais ça ne fonctionne pas mieux.
Si quelqu'un avait une piste ?

Merci d'avance
Cordialement
Pascal












Avatar
papou
;-)
Bon une piste de plus !
Merci Nicolas
Cordialement
Pascal

"ng" a écrit dans le message de
news:%23EDE%
> Si tu ne l'as jamais fait c'est un peu compliqué (il faut maitrisé le
oups je voulais dire maitriser :D

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

ng wrote:
> Alors une solution serait de les envoyer toi même via winsock.
> Si tu ne l'as jamais fait c'est un peu compliqué (il faut maitrisé le
> standard MIME pour l'encodage).
>
>
> papou wrote:
>> Oui
>> L'une des particularités est que chaque mail à envoyer se trouve dans
>> une section d'un document Word issu d'un publipostage et que je dois
>> y ajouter des pièces jointes.
>> Cordialement
>> Pascal
>>
>>
>> "ng" a écrit dans le message de
>> news:%
>>> Ton objectif est bien d'envoyer en email ?
>>>
>>> --
>>> Nicolas G.
>>> FAQ VB : http://faq.vb.free.fr
>>> API Guide : http://www.allapi.net
>>> Google Groups : http://groups.google.fr/
>>> MZ-Tools : http://www.mztools.com/
>>>
>>> papou wrote:
>>>> Bonjour
>>>> Excuse moi mais je ne comprend pas ta proposition ?
>>>> Cordialement
>>>> Pascal
>>>>
>>>> "ng" a écrit dans le message de
>>>> news:%
>>>>> Pourquoi ne pas envoyer le message toi même, sans passer par
>>>>> outlook ?
>>>>>
>>>>> --
>>>>> Nicolas G.
>>>>> FAQ VB : http://faq.vb.free.fr
>>>>> API Guide : http://www.allapi.net
>>>>> Google Groups : http://groups.google.fr/
>>>>> MZ-Tools : http://www.mztools.com/
>>>>>
>>>>> papou wrote:
>>>>>> Bonjour à toutes et à tous
>>>>>> Et meilleurs voeux pour la nouvelle année 2005.
>>>>>> Dans le cadre d'un petit développement (en VBA), j'utilise la
>>>>>> fonction API FindWindow puis SetActiveWindow.
>>>>>> Le but est de m'assurer que la fenêtre d'un message Outlook est
>>>>>> effectivement active avant que je n'effectue un coller de
>>>>>> quelques lignes issues d'un document Word (pour l'instant je
>>>>>> n'ai pas trouvé de solution alternative à ce collage).
>>>>>>
>>>>>> Voici ce que j'utilise actuellement et qui ne fonctionne pas tout
>>>>>> à fait comme je le souhaite (aléatoirement ou pas du tout pour le
>>>>>> collage) : (La méthode Display appartient à l'objet OLE Outlook
>>>>>> Mailitem déclaré plus haut dans mon code)
>>>>>> MessageOutlk.Display
>>>>>> 'On recherche la fenêtre Outlook
>>>>>> Dim LaFen As Long
>>>>>> LaFen = FindWindow(vbNullString, "Programme COMET : votre
>>>>>> planning - Message")
>>>>>> 'On la défini comme étant celle active...
>>>>>> SetActiveWindow (LaFen)
>>>>>> '...avant de coller
>>>>>> SendKeys "^v", True
>>>>>>
>>>>>> Mon soucis est que ne sachant pas ce que je dois renseigner au
>>>>>> niveau du premier argument (ByVal lpClassName As String),
>>>>>> j'utilise VbNullString, mais je me demande si effectivement ce
>>>>>> n'est pas là l'origine de mon problème ? J'ai essayé pour cet
>>>>>> argument "Outlook.Application" mais ça ne fonctionne pas mieux.
>>>>>> Si quelqu'un avait une piste ?
>>>>>>
>>>>>> Merci d'avance
>>>>>> Cordialement
>>>>>> Pascal




1 2