SendKey, comment ça marche ???

Le
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 !
-
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
François Picalausa
Le #14735811
Hello,

"le_troll" 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
ng
Le #14735801
Salut,

Essaye d'activer l'appli avant. Ce code marche parfaitement chez moi :

Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long

Sub Command1_Click()
Dim lhWnd As Long, sSujet As String

sSujet = "Sujet message de test"

Call ShellExecute(Me.hwnd, "Open", "mailto:?subject=" &
sSujet, "", App.Path, 1)
On Error Resume Next
Do
Err.Clear
Call AppActivate(sSujet, False)
DoEvents
Loop Until Err.Number = 0
Call SendKeys("%(s)", True)
End Sub


Mais c'est loin d'être la meilleure facon d'envoyer en mail !!! Tout le
monde n'utilise pas OL/OE...

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


ng
Le #14735791
>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 ?


body :
mailto:?subjet=test&body=corps%20du%20message


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


le_troll
Le #14735781
Merci, j'étudie la question :o)

--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


"ng" #
Salut,

Essaye d'activer l'appli avant. Ce code marche parfaitement chez moi :

Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As


String,
ByVal nShowCmd As Long) As Long

Sub Command1_Click()
Dim lhWnd As Long, sSujet As String

sSujet = "Sujet message de test"

Call ShellExecute(Me.hwnd, "Open", "mailto:?subject=" &
sSujet, "", App.Path, 1)
On Error Resume Next
Do
Err.Clear
Call AppActivate(sSujet, False)
DoEvents
Loop Until Err.Number = 0
Call SendKeys("%(s)", True)
End Sub


Mais c'est loin d'être la meilleure facon d'envoyer en mail !!! Tout le
monde n'utilise pas OL/OE...

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




le_troll
Le #14735771
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???

--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


"François Picalausa"
Hello,

"le_troll" 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




Zoury
Le #14735761
...est-il installé sur ton poste?

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"le_troll" news:
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???

--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


"François Picalausa"

news:

> Hello,
>
> "le_troll" > 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
>
>




ng
Le #14735741
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
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" news:
Hello,

"le_troll" 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




le_troll
Le #14735731
Merci, mais ton truc il est trop compliqué, je ne comprends rien, tu
pourrais pas faire plus court avec mon exemple à moi, mon mien, voici:

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Sub Command1_Click()
ShellExecute Me.hwnd, "Open", "Mailto:" & "?subject=Eh
Joe&body=Petit essai", "", App.Path, 1
SendKeys "%(s)"
End Sub
--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


"ng" #
Salut,

Essaye d'activer l'appli avant. Ce code marche parfaitement chez moi :

Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As


String,
ByVal nShowCmd As Long) As Long

Sub Command1_Click()
Dim lhWnd As Long, sSujet As String

sSujet = "Sujet message de test"

Call ShellExecute(Me.hwnd, "Open", "mailto:?subject=" &
sSujet, "", App.Path, 1)
On Error Resume Next
Do
Err.Clear
Call AppActivate(sSujet, False)
DoEvents
Loop Until Err.Number = 0
Call SendKeys("%(s)", True)
End Sub


Mais c'est loin d'être la meilleure facon d'envoyer en mail !!! Tout le
monde n'utilise pas OL/OE...

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




le_troll
Le #14735721
Ah, "Outlook", ok, je sais pas où il est ce truc, je vais voir...
--
Merci, @+, bye, Joe
ng75 arobase noos point fr
------------------------------------------
Avec une hache, celui qui tient le manche a toujours raison !
----------------------------------------------------------


"ng" 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
> 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" > news:
>> Hello,
>>
>> "le_troll" >> 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




François Picalausa
Le #14735711
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)
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

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


Publicité
Poster une réponse
Anonyme