Bonjour, j'aimerais savoir comment lister via Delphi les dossiers personnels d'Outlook/Exchange.
Exemple dans Outlook : Pièce jointe 15484
Je vous remercie d'avance
Bonjour, j'aimerais savoir comment lister via Delphi les dossiers personnels d'Outlook/Exchange.
Exemple dans Outlook : Pièce jointe 15484
Je vous remercie d'avance
Je viens d'avancer et je viens de trouver une partie de la réponse. Le(s) chemin(s) des fichier .pst d'Outlook sont stockés dans la base de registre en format binaire. Dans la base de registre j'arrive a voir cela: Pièce jointe 15986.
Comment faire pour recuperer cette valeur dans Delphi en clair soit : 'C:\Archives Email\backup.pst'.
Merci d'avance, je compte sur vous car avec cela je terminerais mon projet dans les temps...
Salut,
Cela a l'air d'être de l'unicode donc essaie avec le type WideString.Envoyé par MedGIR
Oui, mais comment je convertis la valeur binaire stockée en Widestring. Quand j'utilise tRegisty il ne me propose rien de la sorte... Je fais ceci
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function GetPstFileList:string; Var Reg : tRegistry; begin Reg := Tregistry.create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey('Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\00c6b95d0e8c6048a908c479edac1c2e',false); //Et la je bloque ??? Result := Reg.ReadBinaryData('001f6700',...,...); Reg.CloseKey; Reg.Free; end;
Si cela interresse qqu, je vous donne le code qui permet d'afficher la liste des fichiers pst configurés pour la session en cours:
Merci quand même... ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 function GetOutlookArchiveList: tStrings; var Reg : TRegistry; RegInfo : TRegDataInfo; Buffer : array of Char; BufferSize : Integer; I,J:Integer; KeyList : TStrings; Value : string; const OutlookReg : string = 'Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook'; begin Result := TStringList.Create; KeyList := TStringList.Create; Reg := TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER; Reg.OpenKey(OutlookReg,false); Reg.GetKeyNames(KeyList); Reg.CloseKey; For i:=0 to KeyList.Count - 1 do begin Reg.OpenKey(OutlookReg + '\' + KeyList.Strings[i],false); if Reg.ValueExists('001f6700') then begin Value := ''; BufferSize := Reg.GetDataSize('001f6700'); SetLength(Buffer,BufferSize); Reg.ReadBinaryData('001f6700',Buffer[0],BufferSize); For j:=0 to BufferSize - 1 do begin if Buffer[j] <> #0 then Value := Value + Buffer[j]; end; Result.Add(Value); end; Reg.CloseKey; end; Reg.Free; end;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager