lancer le programme de messagerie par défaut

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

lancer le programme de messagerie par défaut

Message par julien »

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

Thx!
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

:) Salut,

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
Ca marche pour qui possède Outlook
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
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

C'est bon j'ai trouvé :D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

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 :)
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

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


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) 
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Je crois que PB ne prends pas en charge les % dans un chemin de fichier.

Essaye en faisant

Code : Tout sélectionner

RunProgram(GetFilePart(programme$),"","",0)
Chris :)
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

ça ne marche pas ...
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Moi, ça fonctionne avec Outlook et Mozilla, mais pas avec HotMail, ou tout ce qui fonctionne avec RunDll.

Chris :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

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)]
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Trop bon le soldat :D
ça marche impect sous :
Win XP et Thunderbird
Win Me et outlook Express 5

A voir pour les autres
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

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)
Répondre