lancer le programme de messagerie par défaut
lancer le programme de messagerie par défaut
Quelqu'un sait comment lancer le programme de messagerie par défaut, mais sans lancer un nouvel email ?
Thx!
Thx!

Je ne sais pas si cela t'aidera vraiment
mais je procède ainsi pour lancer Outlook Express
qui est mon log de messagerie par défaut (comme pour beaucoup):
Code : Tout sélectionner
;Dans la boucle du Repeat
Case #Bouton_messagerie
If RunProgram("c:\Program Files\Outlook Express\msimn.exe")
Else
MessageRequester("No Détection","Aucun logiciel de messagerie détecté")
EndIf
Sinon faire un listing de choix avec Else If pour détecter le bon.
Inconvénient: Il faut connaître les logiciels les plus utilisés
pour les inclure dans la liste.
@ + Jacobus
Peut-être une réponse.
J'ai ça sous XP. Donc, il faut d'abord savoir si c'est pareil sous les autres OS
Dans la base de registre, dans HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail, la valeur par défaut te donne le nom du client mail par défaut.
Au même endroit, il y a un dossier avec le nom donné plus haut. Tu l'ouvres, et il y a le chemin du client.
Je t'aurais bien donné un bout de code pour ça, mais je ne sais pas trop manipuler la base de registre avec les commandes de l'Api, et comme PureBasic n'a pas l'air de savoir faire ça tout seul...
Chris
J'ai ça sous XP. Donc, il faut d'abord savoir si c'est pareil sous les autres OS
Dans la base de registre, dans HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail, la valeur par défaut te donne le nom du client mail par défaut.
Au même endroit, il y a un dossier avec le nom donné plus haut. Tu l'ouvres, et il y a le chemin du client.
Je t'aurais bien donné un bout de code pour ça, mais je ne sais pas trop manipuler la base de registre avec les commandes de l'Api, et comme PureBasic n'a pas l'air de savoir faire ça tout seul...
Chris

Merci chris, j'ai trouvé les même infos sur vbfrance.com
Voici le code qui permet donc de trouver le chemin de la messagerie par défaut (avec le nom)
Mais la j'ai un autre problème, je n'arrive pas à lancer le programme malgré que j'ai le chemin
code
Voici le code qui permet donc de trouver le chemin de la messagerie par défaut (avec le nom)
Mais la j'ai un autre problème, je n'arrive pas à lancer le programme malgré que j'ai le chemin
code
Code : Tout sélectionner
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
hKey.l=0
keyvalue.s=Space(255)
datasize.l=255
If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
keyvalue="0"
Else
If RegQueryValueEx_(hKey,ValueName,0,0,@keyvalue,@datasize)
keyvalue="0"
Else
keyvalue=Left(keyvalue,datasize-1)
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
programme$=ReadRegKey(#HKEY_LOCAL_MACHINE,"Software\Clients\Mail\"+ReadRegKey(#HKEY_LOCAL_MACHINE,"Software\Clients\Mail","")+"\shell\open\command","")
RunProgram(programme$,"","",0)
MessageRequester("Messagerie par défaut",programme$,0)
Je crois que PB ne prends pas en charge les % dans un chemin de fichier.
Essaye en faisant
Chris 
Essaye en faisant
Code : Tout sélectionner
RunProgram(GetFilePart(programme$),"","",0)

-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
et comme ça 

Code : Tout sélectionner
Procedure.s ReadRegKey(OpenKey.l, SubKey.s, ValueName.s)
hKey.l = 0
keyvalue.s = Space(255)
datasize.l = 255
If RegOpenKeyEx_(OpenKey, SubKey, 0, #KEY_READ, @hKey)
keyvalue = "0"
Else
If RegQueryValueEx_(hKey, ValueName, 0, 0, @keyvalue, @datasize)
keyvalue = "0"
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
Programme.s = ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Clients\Mail\" + ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Clients\Mail", "") + "\shell\open\command", "")
; On nettoie le nom du programme
Programme2.s = RemoveString(Programme, Chr(34))
Pos = Len(Programme2) + 1
Repeat
Pos - 1
Until Mid(Programme2, Pos, 1) = "." Or Pos = 1
Repeat
Pos + 1
Until Mid(Programme2, Pos, 1) = " " Or Pos = Len(Programme2) + 1
Programme2 = Left(Programme2, Pos - 1)
MessageRequester("Messagerie par défaut", "Nom du programme [Registre] = " + Programme + Chr(10) + "Nom du programme [Nettoyé] = " + Programme2, 0)
RunProgram(Programme2)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
problème, petite correction avec outlook express 6 sous xp car y'a une variable %ProgramFiles%
Code : Tout sélectionner
Procedure.s ReadRegKey(OpenKey.l, SubKey.s, ValueName.s)
hKey.l = 0
keyvalue.s = Space(255)
datasize.l = 255
If RegOpenKeyEx_(OpenKey, SubKey, 0, #KEY_READ, @hKey)
keyvalue = "0"
Else
If RegQueryValueEx_(hKey, ValueName, 0, 0, @keyvalue, @datasize)
keyvalue = "0"
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
Programme.s = ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Clients\Mail\" + ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Clients\Mail", "") + "\shell\open\command", "")
; On nettoie le nom du programme
Programme2.s = RemoveString(Programme, Chr(34))
Pos = Len(Programme2) + 1
Repeat
Pos - 1
Until Mid(Programme2, Pos, 1) = "." Or Pos = 1
Repeat
Pos + 1
Until Mid(Programme2, Pos, 1) = " " Or Pos = Len(Programme2) + 1
Programme2 = Left(Programme2, Pos - 1)
Programme2 = ReplaceString(Programme2, "%ProgramFiles%","c:\Program Files")
MessageRequester("Messagerie par défaut", "Nom du programme [Registre] = " + Programme + Chr(10) + "Nom du programme [Nettoyé] = " + Programme2, 0)
RunProgram(Programme2)