ShellExecute mailto:

Le
Gloops
Bonjour tout le monde,

Sur une page web je vois un lien
"mailto:dest@cvmail.com?subject=Analyste%20D%E9veloppeur%20Informatique=
"

Ma messagerie est (à tort j'imagine) allergique à cette syntaxe, et l=
e
pourcent et tout ce qui suit sont transformés en points d'interrogation=
.

J'ai écrit un programme qui décode cette adresse, ce qui donne donc

mailto:dest@cvmail.com?subject=Analyste Développeur Informatique

Si je mets ça dans un lien sur une nouvelle page web, locale, lorsque j=
e
clique dessus j'ai bien la fenêtre de rédaction de mail avec le sujet=
en
entier sans problème.

En revanche j'essaie de pousser le bouchon plus loin, et de faire en
sorte que mon programme ouvre directement la fenêtre d'écriture de ma=
il.
A ce niveau ça se gâte un peu : j'ai bien une fenêtre d'écriture =
de
mail, mais dans le sujet, à la place du e accent aigu, j'ai un espace
(la suite est correcte).

Je récapitule :
- j'envoie l'adresse décodée, à savoir le deuxième mailto: reprod=
uit
ci-dessus, de deux manières
- si je clique dessus dans Firefox, j'obtiens bien le résultat escompté=

(à part la lourdeur de la procédure)
- si je l'envoie par ShellExecute, j'obtiens un espace à la place du
caractère accentué.

Le fait d'avoir le résultat correct me fait penser que la messagerie
n'est pas à incriminer cette fois, d'autant que ce week-end les tests
étaient concluants de bout en bout.

Y aurait-il des particularités dans le fonctionnement de ShellExecute ?=


Voici la commande (avec le mailto dans strURL) :


ShellExecute 0, vbNullString, strURL, vbNullString, "C:", SW_SHOWNORMAL


et sa déclaration :


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

Const SW_SHOWNORMAL = 1
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #15407581
Ah, il semble qu'il faille envisager le problème sous un autre angle :
une fois la machine redémarrée, les caractères accentués sont de retour
dans les sujets de mails démarrés par ShellExecute.

A force d'ajouter des choses sur une machine, il arrive un moment où
elle a du mal à suivre.

Je crois bien que j'ai appelé au secours pour rien ...
_____________________________________
Gloops a écrit, le 09/05/2007 15:38 :
Bonjour tout le monde,

Sur une page web je vois un lien
"mailto:?subject=Analyste%20D%E9veloppeur%20Informatiq ue"

Ma messagerie est (à tort j'imagine) allergique à cette syntaxe, et le
pourcent et tout ce qui suit sont transformés en points d'interrogati on.

J'ai écrit un programme qui décode cette adresse, ce qui donne donc

mailto:?subject=Analyste Développeur Informatique

Si je mets ça dans un lien sur une nouvelle page web, locale, lorsque je
clique dessus j'ai bien la fenêtre de rédaction de mail avec le suj et en
entier sans problème.

En revanche j'essaie de pousser le bouchon plus loin, et de faire en
sorte que mon programme ouvre directement la fenêtre d'écriture de mail.
A ce niveau ça se gâte un peu : j'ai bien une fenêtre d'écritur e de
mail, mais dans le sujet, à la place du e accent aigu, j'ai un espace
(la suite est correcte).

Je récapitule :
- j'envoie l'adresse décodée, à savoir le deuxième mailto: repr oduit
ci-dessus, de deux manières
- si je clique dessus dans Firefox, j'obtiens bien le résultat escomp té
(à part la lourdeur de la procédure)
- si je l'envoie par ShellExecute, j'obtiens un espace à la place du
caractère accentué.

Le fait d'avoir le résultat correct me fait penser que la messagerie
n'est pas à incriminer cette fois, d'autant que ce week-end les tests
étaient concluants de bout en bout.

Y aurait-il des particularités dans le fonctionnement de ShellExecute ?

Voici la commande (avec le mailto dans strURL) :


ShellExecute 0, vbNullString, strURL, vbNullString, "C:", SW_SHOWNORMA L


et sa déclaration :


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

Const SW_SHOWNORMAL = 1


Publicité
Poster une réponse
Anonyme