Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recuperer contacts de windows mail en vb 6

9 réponses
Avatar
Dan
Bonjour à tous.
En VB 6 je sais récupérer le carnet d'adresses de Outlook.
Maintenant que je suis passé sur Vista, je ne sais pas comment récupérer le
carnet d'adresses de Windows Mail en utilisant VB 6.
Est-ce que quelqu'un pourrait m'aider et si possible m'indiquer un code.
D'avance merci de votre réponse

9 réponses

Avatar
Jacques93
Bonjour Dan,
Dan a écrit :
Bonjour à tous.
En VB 6 je sais récupérer le carnet d'adresses de Outlook.
Maintenant que je suis passé sur Vista, je ne sais pas comment récupérer le
carnet d'adresses de Windows Mail en utilisant VB 6.
Est-ce que quelqu'un pourrait m'aider et si possible m'indiquer un code.
D'avance merci de votre réponse



D'après ce que j'ai vu, les contacts Windows Mail sont enregistrés
individuellement dans des fichiers XML sous le nom
'NomDuContact.contact' dans le répertoire %USERPROFILE%Contacts.

Ces fichiers ont la forme :

<?xml version="1.0" encoding="UTF-8"?>
<c:contact c:Version="1" xmlns:c="http://schemas.microsoft.com/Contact"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:MSP2P="http://schemas.microsoft.com/Contact/Extended/MSP2P">
<c:CreationDate>2007-06-18T06:18:48Z</c:CreationDate>
<c:ContactIDCollection>
<c:ContactID c:ElementID="bede76eb-115f-416c-aba9-88ee856e88e9">
<c:Value>6c0876c8-0af3-41d9-b5b0-21a99b84d335</c:Value>
</c:ContactID>
</c:ContactIDCollection>
<c:EmailAddressCollection>
<c:EmailAddress c:ElementID="4e51e5ce-7d7f-427c-b3a3-749b43049355">
<c:Type>SMTP</c:Type>
<c:Address></c:Address>
<c:LabelCollection>
<c:Label>Preferred</c:Label>
</c:LabelCollection>
</c:EmailAddress>
<c:EmailAddress
c:ElementID="cffec0c5-eb0e-4860-a969-476bf9ff1f7b"/>
</c:EmailAddressCollection>
<c:NameCollection>
<c:Name c:ElementID="568aa1c9-aff7-43e9-83c3-0cb05d8c228c">
<c:FormattedName>Jacques Le Goc</c:FormattedName>
<c:FamilyName>Le Goc</c:FamilyName>
<c:GivenName>Jacques</c:GivenName>
</c:Name>
</c:NameCollection>
<c:PhotoCollection>
<c:Photo c:ElementID="262fe893-a313-489f-9f25-9bb4fe7ac5f5">
<c:LabelCollection>
<c:Label>UserTile</c:Label>
</c:LabelCollection>
</c:Photo>
</c:PhotoCollection>
</c:contact>

mais certain 'Tag' comme xsi:nil="true" empêche de les parser
automatiquement (syntaxe invalide).

Il est toutefois possible de récupérer les informations : sous VB
ajouter une référence à Micrososft XML 4.0, et adapter le code suivant :

' --------------------------------------------------------------------
Private Sub EnumContact()
Dim Root As String
Dim Fic As String

Root = Environ("userprofile") & "Contacts"
Fic = Dir(Root & "*.*")
While Len(Fic) > 0
GetContactInfo (Root & Fic)
Fic = Dir()
Wend
End Sub

Private Sub GetContactInfo(ContactFile As String)
Dim objDom As DOMDocument

Set objDom = New DOMDocument
objDom.async = False
objDom.Load ContactFile

Debug.Print "Nom complet : " & GetNodList(objDom, "c:FormattedName")
Debug.Print "Nom : " & GetNodList(objDom, "c:FamilyName")
Debug.Print "Prénom : " & GetNodList(objDom, "c:GivenName")
Debug.Print "E-mail : " & GetNodList(objDom, "c:Address")
Debug.Print "Type : " & GetNodList(objDom, "c:Type")
Debug.Print "Crée le : " & GetNodList(objDom, "c:CreationDate")
Debug.Print
Set objDom = Nothing
End Sub

Private Function GetNodList(objDom As DOMDocument, _
TagName As String) As String
On Error Resume Next
GetNodList = objDom.getElementsByTagName(TagName).Item(0).Text
End Function


--
Cordialement,

Jacques.
Avatar
aski
Bonjour Jacques93, tu as écrit le 13/12/2007 :

Bonjour Dan,
Dan a écrit :
Bonjour à tous.
En VB 6 je sais récupérer le carnet d'adresses de Outlook.
Maintenant que je suis passé sur Vista, je ne sais pas comment récupérer le
carnet d'adresses de Windows Mail en utilisant VB 6.
Est-ce que quelqu'un pourrait m'aider et si possible m'indiquer un code.
D'avance merci de votre réponse





D'après ce que j'ai vu, les contacts Windows Mail sont enregistrés
individuellement dans des fichiers XML sous le nom 'NomDuContact.contact'
dans le répertoire %USERPROFILE%Contacts.



Ces fichiers ont la forme :



<?xml version="1.0" encoding="UTF-8"?>
<c:contact c:Version="1" xmlns:c="http://schemas.microsoft.com/Contact"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:MSP2P="http://schemas.microsoft.com/Contact/Extended/MSP2P">
<c:CreationDate>2007-06-18T06:18:48Z</c:CreationDate>
<c:ContactIDCollection>
<c:ContactID c:ElementID="bede76eb-115f-416c-aba9-88ee856e88e9">
<c:Value>6c0876c8-0af3-41d9-b5b0-21a99b84d335</c:Value>
</c:ContactID>
</c:ContactIDCollection>
<c:EmailAddressCollection>
<c:EmailAddress c:ElementID="4e51e5ce-7d7f-427c-b3a3-749b43049355">
<c:Type>SMTP</c:Type>
<c:Address></c:Address>
<c:LabelCollection>
<c:Label>Preferred</c:Label>
</c:LabelCollection>
</c:EmailAddress>
<c:EmailAddress c:ElementID="cffec0c5-eb0e-4860-a969-476bf9ff1f7b"/>
</c:EmailAddressCollection>
<c:NameCollection>
<c:Name c:ElementID="568aa1c9-aff7-43e9-83c3-0cb05d8c228c">
<c:FormattedName>Jacques Le Goc</c:FormattedName>
<c:FamilyName>Le Goc</c:FamilyName>
<c:GivenName>Jacques</c:GivenName>
</c:Name>
</c:NameCollection>
<c:PhotoCollection>
<c:Photo c:ElementID="262fe893-a313-489f-9f25-9bb4fe7ac5f5">
<c:LabelCollection>
<c:Label>UserTile</c:Label>
</c:LabelCollection>
</c:Photo>
</c:PhotoCollection>
</c:contact>



mais certain 'Tag' comme xsi:nil="true" empêche de les parser automatiquement
(syntaxe invalide).



Il est toutefois possible de récupérer les informations : sous VB ajouter une
référence à Micrososft XML 4.0, et adapter le code suivant :



' --------------------------------------------------------------------
Private Sub EnumContact()
Dim Root As String
Dim Fic As String



Root = Environ("userprofile") & "Contacts"
Fic = Dir(Root & "*.*")
While Len(Fic) > 0
GetContactInfo (Root & Fic)
Fic = Dir()
Wend
End Sub



Private Sub GetContactInfo(ContactFile As String)
Dim objDom As DOMDocument



Set objDom = New DOMDocument
objDom.async = False
objDom.Load ContactFile



Debug.Print "Nom complet : " & GetNodList(objDom, "c:FormattedName")
Debug.Print "Nom : " & GetNodList(objDom, "c:FamilyName")
Debug.Print "Prénom : " & GetNodList(objDom, "c:GivenName")
Debug.Print "E-mail : " & GetNodList(objDom, "c:Address")
Debug.Print "Type : " & GetNodList(objDom, "c:Type")
Debug.Print "Crée le : " & GetNodList(objDom, "c:CreationDate")
Debug.Print
Set objDom = Nothing
End Sub



Private Function GetNodList(objDom As DOMDocument, _
TagName As String) As String
On Error Resume Next
GetNodList = objDom.getElementsByTagName(TagName).Item(0).Text
End Function



Voilà donc une solution élégante. Je m'apprêtais à utiliser des
fonctions très primaires de recherche de chaîne par méconnaissance de
XML.
Nous ne programmons pas dans la même catégorie. ;-(

--
Cordialement
Aski

AntiSpamEdit (ASE) - XtractOE et XtractWM - K9 en français
http://dechily.org/downloads.htm
Avatar
aski
Bonjour Jacques93, tu as écrit le 13/12/2007 :

Suite ...

Voilà donc une solution élégante. Je m'apprêtais à utiliser des fonctions
très primaires de recherche de chaîne par méconnaissance de XML.
Nous ne programmons pas dans la même catégorie. ;-(




Je comprends maintenant pourquoi on ne parle pas le même langage.
Sous XP j'ai de vrais XML (.contact) qui sont partagés sur les Live et
qui sont donc déchiffrables comme tu le montres dans ton exemple.

Sous Vista, c'est lisible sous Word 2003 mais impossible à déchiffrer
simplement. Ils portent une extension différente (.WindowsLiveContact)
et sont communs à Windows Mail et Windows Live MachinsTrucs.
Leur forme peut être différente.

Qu'en pense notre magicien ?
Je peux t'envoyer des fichiers en privé ....


------ fichier 28a2a1c6-1ae2-42ab-b18f-4e76e80c7f52.WindowsLiveContact
겚Ӄ湀
Avatar
Jacques93
Bonjour Henri,
aski a écrit :
Bonjour Jacques93, tu as écrit le 13/12/2007 :

Suite ...

Voilà donc une solution élégante. Je m'apprêtais à utiliser des
fonctions très primaires de recherche de chaîne par méconnaissance de
XML.
Nous ne programmons pas dans la même catégorie. ;-(




Je comprends maintenant pourquoi on ne parle pas le même langage.
Sous XP j'ai de vrais XML (.contact) qui sont partagés sur les Live et
qui sont donc déchiffrables comme tu le montres dans ton exemple.



J'ai fait tous les essais sous Vista ...

Sous Vista, c'est lisible sous Word 2003 mais impossible à déchiffrer
simplement. Ils portent une extension différente (.WindowsLiveContact)
et sont communs à Windows Mail et Windows Live MachinsTrucs.
Leur forme peut être différente.

Qu'en pense notre magicien ?



Trop d'honneur :-) , mon seigneur ;-)

Je peux t'envoyer des fichiers en privé ....



OK pas de problème, avec TB c'est du chinois, et je vais peut être
installer Windows Live Mail (pas avant ce week-end), pour voir en direct
live.

--
Cordialement,

Jacques.
Avatar
Jacques93
aski a écrit :
Bonjour Jacques93, tu as écrit le 13/12/2007 :



Voilà ce que j'obtiens sous Word 2003 :

<http://cjoint.com/?moaGwJUgEt>

A partir d'une partition sous XP, sur une partition sous Vista.

Office 2007, j'ai un peu de mal à m'y faire

--
Cordialement,

Jacques.
Avatar
aski
Bonjour Jacques93, tu as écrit le 14/12/2007 :

aski a écrit :
Bonjour Jacques93, tu as écrit le 13/12/2007 :





Voilà ce que j'obtiens sous Word 2003 :



<http://cjoint.com/?moaGwJUgEt>



A partir d'une partition sous XP, sur une partition sous Vista.



Office 2007, j'ai un peu de mal à m'y faire



J'ai peur de ne pas bien comprendre.
Tu as lu à partir de XP un fichier de Vista ?
En tous cas chez moi, sous Vista c'est comparable sans être aussi
complet. Je t'envie quelques exemples en privé.

--
Cordialement
Aski

AntiSpamEdit (ASE) - XtractOE et XtractWM - K9 en français
http://dechily.org/downloads.htm
Avatar
news.free.fr
Bonjour Henri,
aski a écrit :
Bonjour Jacques93, tu as écrit le 14/12/2007 :

aski a écrit :
Bonjour Jacques93, tu as écrit le 13/12/2007 :





Voilà ce que j'obtiens sous Word 2003 :



<http://cjoint.com/?moaGwJUgEt>



A partir d'une partition sous XP, sur une partition sous Vista.



Office 2007, j'ai un peu de mal à m'y faire



J'ai peur de ne pas bien comprendre.
Tu as lu à partir de XP un fichier de Vista ?



Oui, Dual boot sur 2 partitions d'un même disque, (XP PRO sur C:, Vista
Ultimate sur F:) en Administrateur (même mot de passe). En bootant sous
XP, j'ai accès à la partition Vista et réciproquement.

En tous cas chez moi, sous Vista c'est comparable sans être aussi
complet. Je t'envie quelques exemples en privé.




Envois bien reçu, pas encore regardés.


--
Cordialement,

Jacques
Avatar
aski
Bonjour news.free.fr, tu as écrit le 14/12/2007 :

Envois bien reçu, pas encore regardés.



Tu as 2 pseudos ?

--
Cordialement
Aski

AntiSpamEdit (ASE) - XtractOE et XtractWM - K9 en français
http://dechily.org/downloads.htm
Avatar
Jacques93
aski a écrit :
Bonjour news.free.fr, tu as écrit le 14/12/2007 :

Envois bien reçu, pas encore regardés.



Tu as 2 pseudos ?




Non, erreur de manip, j'ai répondu en étant sur le serveur de news de
Free, sur lequel j'avais laissé le pseudo par défaut.