Lancer l'application associée a un type de fichier (email)
Lancer l'application associée a un type de fichier (email)
Bonjour,
après quelques recherche ici et sur le forum anglais, je me demande si quelqu'un sait comment lancer en ligne de commande (ou autre) une application associé a un type de fichier...
sous windows (mais pour linux et MacOs ça m’intéresse aussi)
Mon but est d'ouvrir la messagerie par défaut et lui joindre des pièces jointe
un peu comme en html avec un lien du type "mailto:monemail@machin.fr"?subject=Sujet&Attach=C:/monfichier.jpg"
si quelqu'un a une idée ...
Merci d'avance
après quelques recherche ici et sur le forum anglais, je me demande si quelqu'un sait comment lancer en ligne de commande (ou autre) une application associé a un type de fichier...
sous windows (mais pour linux et MacOs ça m’intéresse aussi)
Mon but est d'ouvrir la messagerie par défaut et lui joindre des pièces jointe
un peu comme en html avec un lien du type "mailto:monemail@machin.fr"?subject=Sujet&Attach=C:/monfichier.jpg"
si quelqu'un a une idée ...
Merci d'avance
Re: Lancé Application associé a un type de fichier (email)
ben tu donnes juste le nom du fichier a ouvrir
ça va ouvrir le prg qui te sert a ouvrir les images d'habitude ....
pour un email , il suffit d'indiquer le nom du fichier email, et ton client email va s'ouvrir !!
ça marche meme avec le reseau de memoire
et ceci par exemple , ouvre le navigateur par defaut et effectue la recherche des termes se trouvant dans les Data
donc, ici ouvre automatiquement 3 onglets dans Mozilla
un onglet avec les termes "riri fifi loulu"
un autre avec le terme de recherche "toto"
un autre avec le terme de recherche "Zorro"
Code : Tout sélectionner
RunProgram("c:\mon_image.jpg")
pour un email , il suffit d'indiquer le nom du fichier email, et ton client email va s'ouvrir !!
ça marche meme avec le reseau de memoire
et ceci par exemple , ouvre le navigateur par defaut et effectue la recherche des termes se trouvant dans les Data
donc, ici ouvre automatiquement 3 onglets dans Mozilla
un onglet avec les termes "riri fifi loulu"
un autre avec le terme de recherche "toto"
un autre avec le terme de recherche "Zorro"
Code : Tout sélectionner
Restore debut:
For i=1 to 3
Read.s variable.s
RunProgram("https://www.google.fr/search?q="+variable.s)
Delay(5000)
Next i
Datasection
debut:
data.s "riri fifi loulou"
data.s "toto"
data.s "Zorro"
EndDatasection
; Epb
Dernière modification par Zorro le jeu. 20/juil./2017 12:55, modifié 1 fois.
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Lancé Application associé a un type de fichier (email)
Merci Zorro
Oui pour les images et les documents ça marche très bien. Mais je pense que je n'ai pas trop de choix que d'aller voir dans la base de registre l'application mis par defaut pour la messagerie et la lancer.
J'éspèrais qu'il y avait une astuce pour la lancer directement comme on le fait pour un autre document genre ..
RunProgram("mailto:adress@mail.fr sujet=trucutr attach=c:/doc.doc")
Bon je vais creuser ...
Oui pour les images et les documents ça marche très bien. Mais je pense que je n'ai pas trop de choix que d'aller voir dans la base de registre l'application mis par defaut pour la messagerie et la lancer.
J'éspèrais qu'il y avait une astuce pour la lancer directement comme on le fait pour un autre document genre ..
RunProgram("mailto:adress@mail.fr sujet=trucutr attach=c:/doc.doc")
Bon je vais creuser ...
Re: Lancé Application associé a un type de fichier (email)
j'ai trouvé cette commande là sur certain forum ...
Pas reussi a la faire fonctionner
Code : Tout sélectionner
rundll32.exe url.dll,FileProtocolHandler mailto:%s &Subject=%s &body=%s
Re: Lancé Application associé a un type de fichier (email)
Je sais pas si ça marche encore... http://www.purebasic.fr/english/viewtop ... 12&t=10590
Re: Lancé Application associé a un type de fichier (email)
Merci super .... ça marche super pour les fichiers... faut que je regarde si je peux trouver la messagerie a partir de çadjes a écrit :Je sais pas si ça marche encore... http://www.purebasic.fr/english/viewtop ... 12&t=10590
Re: Lancé Application associé a un type de fichier (email)
Merci beaucoup djes Je voir quel est la technique là mieuxdjes a écrit :Quelques autres codes : http://www.purebasic.fr/english/viewtop ... 13&t=49617
et là : http://www.purebasic.fr/english/viewtop ... 13&t=34543
Il y a la commande
Code : Tout sélectionner
start "" "mailto:example@rat.it?subject=subject&body=body "
mais aussi
Code : Tout sélectionner
explorer "mailto:lvirden@cas.org?subject=exceptionRpt^&body"
Code : Tout sélectionner
rundll32.exe url.dll,FileProtocolHandler mailto:%s &Subject=%s &body=%s
Disons que ça marche avec tout les applications Outlook,WinMail, Thunderbird etc... mais pas quand on met chrome comme client de messagerie ...
Re: Lancer l'application associée a un type de fichier (emai
Super c'est parfait ^_^
Re: Lancer l'application associée a un type de fichier (emai
comment un truc qui je pensais allait me prendre 10 minutes va me prendre une semaine
j'arrive maintenant très bien a ouvrir le client email .... mais les pièces jointes ne veulent pas se rajouter ...
sans doute un problème de sécurité...
j'arrive maintenant très bien a ouvrir le client email .... mais les pièces jointes ne veulent pas se rajouter ...
Code : Tout sélectionner
RunProgram("rundll32", "url.dll,FileProtocolHandler mailto:" + "?&subject=Photos&attachment=" + Chr(34) + "D:\Sanstitre-4.jpg" + Chr(34),"")
Re: Lancer l'application associée a un type de fichier (emai
D'après ce que j'ai lu, soit il faut un chemin réseau, soit un chemin absolu (?), soit il faut encoder le fichier, voir si tu ne peux pas utiliser la nouvelle lib mail pour ça...
Re: Lancer l'application associée a un type de fichier (emai
Le but étant de faire au plus simple pour que l'utilisateur évite de configurer le serveur smtpdjes a écrit :D'après ce que j'ai lu, soit il faut un chemin réseau, soit un chemin absolu (?), soit il faut encoder le fichier, voir si tu ne peux pas utiliser la nouvelle lib mail pour ça...
C'est pas très claire l'histoire de la pièce jointe, j'ai vraiment lu tout et n'importe quoi... mais des applications arrivent bien a le faire .. on devrait y arriver quand même.
Sur le forum anglais j'étais tombé sur un gars qui avait essayé de faire ça en s'inspirant d'un programme en Delfi
http://codes-sources.commentcamarche.ne ... pisendmail
Des qu'on touche aux API de Microsoft ... j'ai vraiment du mal. mais j'ai pas dis mon dernier mot
Re: Lancer l'application associée a un type de fichier (emai
Voilà un code que j'ai trouvé un peu ancien ... faut juste trouver pourquoi il marche plus
Code : Tout sélectionner
; Code by the.weavster
; Source http://www.purebasic.fr/english/viewtopic.php?f=13&t=14722&hilit=mapi32
;declare some MAPI constants...
#SUCCESS_SUCCESS = 0
#MAPI_USER_ABORT = 1
#MAPI_E_FAILURE = 2
#MAPI_E_LOGIN_FAILURE = 3
#MAPI_E_DISK_FULL = 4
#MAPI_E_INSUFFICIENT_MEMORY = 5
#MAPI_E_BLK_TOO_SMALL = 6
#MAPI_E_TOO_MANY_SESSIONS = 8
#MAPI_E_TOO_MANY_FILES = 9
#MAPI_E_TOO_MANY_RECIPIENTS = 10
#MAPI_E_ATTACHMMENT_NOT_FOUND = 11
#MAPI_E_ATTACHMENT_OPEN_FAILURE = 12
#MAPI_E_ATTACHMENT_WRITE_FAILURE = 13
#MAPI_E_UNKNOWN_RECIPIENT = 14
#MAPI_E_BAD_RECITYPE = 15
#MAPI_E_NO_MESSAGES = 16
#MAPI_E_INVALID_MESSAGE = 17
#MAPI_E_TEXT_TOO_LARGE = 18
#MAPI_E_INVALID_SESSION = 19
#MAPI_E_TYPE_NOT_SUPPORTED = 20
#MAPI_E_AMBIGUOUS_RECIPIENT = 21
#MAPI_E_MESSAGE_IN_USE = 22
#MAPI_E_NETWORK_FAILURE = 23
#MAPI_E_INVALID_EDITFIELDS = 24
#MAPI_E_INVALID_RECIPS = 25
#MAPI_E_NOT_SUPPORTED = 26
#MAPI_E_NO_LIBRARY = 999
#MAPI_E_INVALID_PARAMETER = 998
#MAPI_ORIG = 0
#MAPI_TO = 1
#MAPI_CC = 2
#MAPI_BCC = 3
#MAPI_UNREAD = 1
#MAPI_RECEIPT_REQUESTED = 2
#MAPI_SENT = 4
#MAPI_LOGON_UI = $00000001
#MAPI_DIALOG = $00000008
;enumerate other constants...
Enumeration
#MAPI32_DLL
EndEnumeration
;define MAPI structures...
Structure MAPIMessage
Reserved.l
Subject.s
NoteText.s
MessageType.s
DateReceived.s
ConversationID.s
Flags.l
Originator.s
RecipCount.l
Recips.l
FileCount.l
Files.l
EndStructure
Structure MAPIRecip
Reserved.l
RecipClass.l
Name.s
Address.s
EIDSize.l
EntryID.s
EndStructure
Structure MAPIFile
Reserved.l
Flags.l
Position.l
PathName.s
FileName.s
FileType.l
EndStructure
;declare global variables...
Global lSession.l
Global ErrorDecsription.s
Global udtMessage.MAPIMessage
Global udtRecip.MAPIRecip
Global udtFile.MAPIFile
;open the MAPI library...
Result.l = OpenLibrary(#MAPI32_DLL,"MAPI32.DLL")
If Result = 0
MessageRequester("Error","Could Not Load MAPI Library",0)
End
EndIf
;set pointers to the required functions...
Global MAPILogOff.l : MAPILogOff = GetFunction(#MAPI32_DLL,"MAPILogoff")
Global MAPILogOn.l : MAPILogOn = GetFunction(#MAPI32_DLL,"MAPILogon")
Global MAPISendMail.l : MAPISendMail = GetFunction(#MAPI32_DLL,"MAPISendMail")
If MAPILogOff And MAPILogOn And MAPISendMail
Else
MessageRequester("Error","Function Did Not Load",0)
CloseLibrary(#MAPI32_DLL)
End
EndIf
;error definition function...
Procedure.s MAPIError(lError.l)
Select lError
Case #MAPI_USER_ABORT
text$ = "MAPI User Cancel"
Case #MAPI_E_FAILURE
text$ = "MAPI Failure"
Case #MAPI_E_LOGIN_FAILURE
text$ = "MAPI Login Failure"
Case #MAPI_E_DISK_FULL
text$ = "MAPI Disk Full"
Case #MAPI_E_INSUFFICIENT_MEMORY
text$ = "MAPI Insufficient Memory"
Case #MAPI_E_BLK_TOO_SMALL
text$ = "MAPI Block Too Small"
Case #MAPI_E_TOO_MANY_SESSIONS
text$ = "MAPI Too Many Sessions"
Case #MAPI_E_TOO_MANY_FILES
text$ = "MAPI Too Many Files"
Case #MAPI_E_TOO_MANY_RECIPIENTS
text$ = "MAPI Too Many Attachments"
Case #MAPI_E_ATTACHMMENT_NOT_FOUND
text$ = "MAPI Attachment Not Found"
Case #MAPI_E_ATTACHMENT_OPEN_FAILURE
text$ = "MAPI Attachment Open Failure"
Case #MAPI_E_ATTACHMENT_WRITE_FAILURE
text$ = "MAPI Attachment Write Failure"
Case #MAPI_E_UNKNOWN_RECIPIENT
text$ = "MAPI Unknown Recipient"
Case #MAPI_E_BAD_RECITYPE
text$ = "MAPI Bad Recipient Type"
Case #MAPI_E_NO_MESSAGES
text$ = "MAPI No Messages"
Case #MAPI_E_INVALID_MESSAGE
text$ = "MAPI Invalid Message"
Case #MAPI_E_TEXT_TOO_LARGE
text$ = "MAPI Text Too Large"
Case #MAPI_E_INVALID_SESSION
text$ = "MAPI Invalid Session"
Case #MAPI_E_TYPE_NOT_SUPPORTED
text$ = "MAPI Type Not Supported"
Case #MAPI_E_AMBIGUOUS_RECIPIENT
text$ = "MAPI Ambiguous Recipient"
Case #MAPI_E_MESSAGE_IN_USE
text$ = "MAPI Message In Use"
Case #MAPI_E_NETWORK_FAILURE
text$ = "MAPI Network Failure"
Case #MAPI_E_INVALID_EDITFIELDS
text$ = "MAPI Invalid Edit Fields"
Case #MAPI_E_INVALID_RECIPS
text$ = "MAPI Invalid Recipients"
Case #MAPI_E_NOT_SUPPORTED
text$ = "MAPI Not Supported"
Case #MAPI_E_NO_LIBRARY
text$ = "MAPI No Library"
Case #MAPI_E_INVALID_PARAMETER
text$ = "MAPI Invalid Parameter"
EndSelect
text$ = text$ + " [Error No: " + Str(lError) + "]"
ProcedureReturn text$
EndProcedure
;connect and send mail function...
Procedure.l SendEMail(UserName.s,Password.s,Recipient.s,Subject.s,Message.s,Attachment.s)
Dim udtRecips.MAPIRecip(0)
Dim udtFiles.MAPIFile(0)
ErrorDecsription = "No Problem"
If Recipient <> "" And Right(Recipient,1) <> ";"
Recipient = Recipient + ";"
EndIf
lRecipientCount.l = CountString(Recipient,";")
If lRecipientCount > 0
Dim udtRecips.MAPIRecip(lRecipientCount)
For k = 0 To lRecipientCount - 1
udtRecips(k)\Reserved = 0
udtRecips(k)\RecipClass = #MAPI_TO
udtRecips(k)\Name = StringField(Recipient,k + 1,";")
udtRecips(k)\Address = ""
udtRecips(k)\EIDSize = 1000
udtRecips(k)\EntryID = ""
Next k
EndIf
If Attachment <> "" And Right(Attachment,1) <> ";"
Attachment = Attachment + ";"
EndIf
lFileCount.l = CountString(Attachment,";")
If lFileCount > 0
Dim udtFiles.MAPIFile(lFileCount)
For k = 0 To lFileCount - 1
udtFiles(k)\Reserved = 0
udtFiles(k)\Flags = 0
udtFiles(k)\Position = 0
udtFiles(k)\PathName = StringField(Attachment,k + 1,";")
udtFiles(k)\FileName = GetFilePart(StringField(Attachment,k + 1,";"))
udtFiles(k)\FileType = 0
Next k
EndIf
udtMessage\Reserved = 0
udtMessage\Subject = Subject
udtMessage\NoteText = Message
udtMessage\MessageType = ""
udtMessage\DateReceived = FormatDate("%yyyy/%mm/%dd %hh:%ii",Date())
udtMessage\ConversationID = ""
udtMessage\Flags = 0
udtMessage\Originator = UserName
udtMessage\RecipCount = lRecipientCount
udtMessage\Recips = @udtRecips()
udtMessage\FileCount = lFileCount
udtMessage\Files = @udtFiles()
lResult.l = CallFunctionFast(MAPILogOn,0,UserName,Password,#MAPI_LOGON_UI,0,@lSession)
If lReturn <> #SUCCESS_SUCCESS
ErrorDecsription = MAPIError(lResult)
ProcedureReturn #False
EndIf
lResult.l = CallFunctionFast(MAPISendMail,lSession,0,udtMessage,0,0) ;could use #MAPI_DIALOG as parameter 4 to display the e-mail
If lResult <> #SUCCESS_SUCCESS
ErrorDecsription = MAPIError(lResult)
ProcedureReturn #False
EndIf
lResult.l = CallFunctionFast(MAPILogOff,lSession,0,0,0)
If lResult <> #SUCCESS_SUCCESS
ErrorDecsription = MAPIError(lResult)
ProcedureReturn #False
EndIf
ProcedureReturn #True
Dim udtRecips.MAPIRecip(0)
Dim udtFiles.MAPIFile(0)
EndProcedure
;give it a little try...
MyAccount.s = InputRequester("User Name","Please Input Your SMTP User Name","")
MyPassword.s = InputRequester("Password","Please Input Your SMTP Password","")
MyRecipients.s = "falsename@falseaddress.com;somebodyelse@falseaddress.com"
MySubject.s = "Subject Goes Here"
MyText.s = "Message Goes Here"
MyAttachments.s = OpenFileRequester("Attachment","*.*","All Files | *.*",0)
lTest.l = SendEMail(MyAccount,MyPassword,MyRecipients,MySubject,MyText,MyAttachments)
If lTest = #True
MessageRequester("Confirmation","EMail Created OK",0)
Else
MessageRequester("Error",ErrorDecsription,0)
EndIf
CloseLibrary(#MAPI32_DLL)
End
Re: Lancer l'application associée a un type de fichier (emai
Ca demande le serveur smtp aussi...