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
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
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;
Partager