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

SendKey, comment ça marche ???

16 réponses
Avatar
le_troll
Bonjour, j'ai fait un code qui ne marche pas avec SendKey, voici:

Sub Command1_Click()
ShellExecute Me.hwnd, "Open", "Mailto:" & "Adresse_email?subject=Sujet",
"", App.Path, 1
SendKeys "%(s)", False
End Sub

Alors j'ouvre bien Outlook express 6 avec l'adresse enregistrée et le
sujet passé en argument dans shellExecute, mais ensuite pour envoyer le
courrier il faut faire <Alt>+<S>, donc je crois SendKey "%(s)"
Mais le problème c'est que l'<Alt>+<s> de Sendkey est peut être passé, mais
je ne sais pas à quoi ou
à qui, lol... il faudrait que le programme passe cette commande à la tache
(non active, puisque c'est celle de mon programme qui est active), je
disais, il faudrait que depuis la tâche active de mon programme, la commande
d'envoi atteigne la tâche non active sur laquelle mon programme a ouvert
OE6, me suivez-vous ?

Avez-vous une idée pour envoyer le courrier ?

Sinon, pendant que j'y suis, dans les arguments sur SendKey il y a vers
la fin une chaîne vide "", à quoi ça sert, et le 1 en fin, ça sert à quoi ?

Et en dernier, j'arrive à ouvrir OE6, à mettre une adresse email, à
mettre un titre, ne sauriez-vous pas comment mettre un texte dans le corps,
et aussi comment l'envoyer, peut être est-ce possible depuis ShellExecute ?
--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------

6 réponses

1 2
Avatar
ng
ReSalut,

Tout ca parce que personne ne te dit que l'execution d'OE est instantanée.
Cela peut en effet prendre plusieurs secondes sur un poste, il faut donc
être sûr que la fenêtre soit active avant de lui envoyer les touches.

--
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/

François Picalausa a écrit :

Hello,

il n'est pas plus compliqué que le tien.. ng ajoute simplement une
boucle d'attente (il attend d'avoir réussi à active Outlook Express):
Do 'début de la boucle
Err.Clear 'on efface les erreurs éventuelles
Call AppActivate(sSujet, False) 'on tente d'activer Outlook
Express,




ce qui peut provoquer une erreur si la fenêtre n'est pas encore
apparue
DoEvents 'On laisse le temps à d'autres événements de se
produire Loop Until Err.Number = 0 'Fin de la boucle si il n'y a
plus d'erreur (et




que donc on a réussi à active OE)

"le_troll" a écrit dans le message de
news:
Merci, mais ton truc il est trop compliqué, je ne comprends
rien, tu pourrais pas faire plus court avec mon exemple à moi, mon




Avatar
le_troll
Ben j'ai pas OutLook, lol, j'ai dû l'éliminer... Le problème, c'est qu'à la
recharge de programme sur le CD, OutLook n'est pas proposé, il n'est pas non
plus dans mon dossier "Programme", ni dans ProgramsFiles à "Outlook", j'ai
que "Express", Arg !!!

Une idée? Quel est le nom de Outlook, que je vois si j'ai pas le fichier,
est-ce "Outlook.exe"?
Sinon, comment le recharger ?
--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


"ng" a écrit dans le message de news:
e#$
Salut,

Ca c'est pour Outlook. Outlook Express n'est quant à lui pas pilotable par
automation.

--
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/

le_troll a écrit :

> François,
>
> Je suis en plein sur la question n°2, lol, le problème c'est
> qu'il faut
>>
>
> "Projets/Références...". Dans la liste des références disponibles,
> sélectionnez "Microsoft Outlook X.X Object Library"
>
> Le problème c'est que je ne trouve pas "Microsoft Outlook", OU IL EST
> dans la liste???
>
>
> "François Picalausa" a écrit dans le message de
> news:
>> Hello,
>>
>> "le_troll" a écrit dans le message de
>> news:
>>> Et en dernier, j'arrive à ouvrir OE6, à mettre une adresse
>>> email, à mettre un titre, ne sauriez-vous pas comment mettre un
>>> texte dans le corps, et aussi comment l'envoyer, peut être est-ce
>>> possible depuis ShellExecute ?
>>
>> Mailto:Adresse_email?subject=Sujet&body=hello!
>>
>>> Sinon, pendant que j'y suis, dans les arguments sur SendKey il y
>>> a vers la fin une chaîne vide "", à quoi ça sert, et le 1 en fin, ça
>>> sert à quoi ?
>>
>>
>> A attendre que le message soit passé avec de continuer.
>>
>>> Avez-vous une idée pour envoyer le courrier ?
>>
>> Je te conseille la faq:
>> http://faq.vb.free.fr?question=2
>>
>>> je disais, il faudrait que depuis la tâche active de mon
>>> programme, la commande d'envoi atteigne la tâche non active sur
>>> laquelle mon programme a ouvert OE6, me suivez-vous ?
>>
>> Retourne toi, tu le saura.... C'était mon dernier neurone, désolé...
>>
>> Je pense qu'envoyer un message par Mailto c'est déjà du bricolage.
>> Mais suppose que j'emploie un programme de mail qui utilise comme
>> touche pour l'envoi Ctrl+Z et pas Alt+S..
>> L'association avec mailto pourrait être faite avec ce programme (on
>> pourrait presque dire que si outlook express y est associé, c'est du
>> hazard). Donc, voir la faq de toute urgence :-)
>>
>> --
>> François Picalausa (MVP VB)
>> http://faq.vb.free.fr --- http://msdn.microsoft.com
>> http://apisvb.europe.webmatrixhosting.net




Avatar
Clive Lumb
"le_troll" a écrit dans le message de
news:Ozr$
Ben j'ai pas OutLook, lol, j'ai dû l'éliminer... Le problème, c'est qu'à


la
recharge de programme sur le CD, OutLook n'est pas proposé, il n'est pas


non
plus dans mon dossier "Programme", ni dans ProgramsFiles à "Outlook", j'ai
que "Express", Arg !!!

Une idée? Quel est le nom de Outlook, que je vois si j'ai pas le fichier,
est-ce "Outlook.exe"?
Sinon, comment le recharger ?
--


Il fait partie d'Office !
Avatar
le_troll
Ah merci cher ami, "office" dis-tu;, n'y vais de ce pas...
--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


"Clive Lumb" a écrit dans le message
de news:
"le_troll" a écrit dans le message de
news:Ozr$
> Ben j'ai pas OutLook, lol, j'ai dû l'éliminer... Le problème, c'est qu'à
la
> recharge de programme sur le CD, OutLook n'est pas proposé, il n'est pas
non
> plus dans mon dossier "Programme", ni dans ProgramsFiles à "Outlook",


j'ai
> que "Express", Arg !!!
>
> Une idée? Quel est le nom de Outlook, que je vois si j'ai pas le


fichier,
> est-ce "Outlook.exe"?
> Sinon, comment le recharger ?
> --
Il fait partie d'Office !




Avatar
le_troll
Salut,

Ok, en fait je n'ai jamais utilisé SenKey, j'en connaissais juste
l'existence et me suis dit que dans ce cas ça pouvait coller...

En fait je n'ai pas compris pourquoi tu bouclais avec une variable sur
le titre je crois, alors que le titre, moi je l'incluais dans la commande de
lancement.... Tu aurais fait un truc du genre (si c'est faisable ici):

do while resultat <> x
resultat = appel programme
do events
loop

J'aurais mieux compris...

Bon, je vais déjà charger (tenter de recharger) Outlook (tout court)!!!
--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


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

ReSalut,

Tout ca parce que personne ne te dit que l'execution d'OE est instantanée.
Cela peut en effet prendre plusieurs secondes sur un poste, il faut donc
être sûr que la fenêtre soit active avant de lui envoyer les touches.

--
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/

François Picalausa a écrit :

> Hello,
>
> il n'est pas plus compliqué que le tien.. ng ajoute simplement une
> boucle d'attente (il attend d'avoir réussi à active Outlook Express):
>>> Do 'début de la boucle
>>> Err.Clear 'on efface les erreurs éventuelles
>>> Call AppActivate(sSujet, False) 'on tente d'activer Outlook
>>> Express,
> ce qui peut provoquer une erreur si la fenêtre n'est pas encore
> apparue
>>> DoEvents 'On laisse le temps à d'autres événements de se
>>> produire Loop Until Err.Number = 0 'Fin de la boucle si il n'y a
>>> plus d'erreur (et
> que donc on a réussi à active OE)
>
> "le_troll" a écrit dans le message de
> news:
>> Merci, mais ton truc il est trop compliqué, je ne comprends
>> rien, tu pourrais pas faire plus court avec mon exemple à moi, mon




Avatar
ng
Salut,

Je boucle avec le sujet pour la simple raison, que dans un message sous OE,
le titre de la fenêtre est le titre du message.

--
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/

le_troll a écrit :

Salut,

Ok, en fait je n'ai jamais utilisé SenKey, j'en connaissais juste
l'existence et me suis dit que dans ce cas ça pouvait coller...

En fait je n'ai pas compris pourquoi tu bouclais avec une
variable sur le titre je crois, alors que le titre, moi je l'incluais
dans la commande de lancement.... Tu aurais fait un truc du genre (si
c'est faisable ici):

do while resultat <> x
resultat = appel programme
do events
loop

J'aurais mieux compris...

Bon, je vais déjà charger (tenter de recharger) Outlook (tout
court)!!!

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

ReSalut,

Tout ca parce que personne ne te dit que l'execution d'OE est
instantanée. Cela peut en effet prendre plusieurs secondes sur un
poste, il faut donc être sûr que la fenêtre soit active avant de lui
envoyer les touches.

--
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/

François Picalausa a écrit :

Hello,

il n'est pas plus compliqué que le tien.. ng ajoute simplement une
boucle d'attente (il attend d'avoir réussi à active Outlook
Express):
Do 'début de la boucle
Err.Clear 'on efface les erreurs éventuelles
Call AppActivate(sSujet, False) 'on tente d'activer Outlook
Express,




ce qui peut provoquer une erreur si la fenêtre n'est pas encore
apparue
DoEvents 'On laisse le temps à d'autres événements de se
produire Loop Until Err.Number = 0 'Fin de la boucle si il n'y a
plus d'erreur (et




que donc on a réussi à active OE)

"le_troll" a écrit dans le message de
news:
Merci, mais ton truc il est trop compliqué, je ne comprends
rien, tu pourrais pas faire plus court avec mon exemple à moi, mon








1 2