IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Listes des dossiers personels d'Outlook [FAQ]


Sujet :

Web & réseau Delphi

  1. #1
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2002
    Messages : 144
    Points : 157
    Points
    157
    Par défaut Listes des dossiers personels d'Outlook
    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

  2. #2
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2002
    Messages : 144
    Points : 157
    Points
    157
    Par défaut Base de registre
    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...

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par MedGIR
    Comment faire pour recuperer cette valeur dans Delphi en clair soit : 'C:\Archives Email\backup.pst'.
    Cela a l'air d'être de l'unicode donc essaie avec le type WideString.

  4. #4
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2002
    Messages : 144
    Points : 157
    Points
    157
    Par défaut
    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

    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;
    Merci d'avance

  5. #5
    Membre habitué
    Inscrit en
    Août 2002
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2002
    Messages : 144
    Points : 157
    Points
    157
    Par défaut C'est bon, je me suis debrouillé tous seul
    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:

    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;
    Merci quand même... ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OL-2002] Outlook 2002 : liste des dossiers (messagerie partagée)
    Par Laurette23 dans le forum Outlook
    Réponses: 0
    Dernier message: 07/09/2011, 13h03
  2. Liste des dossier répertoire
    Par cjacquel dans le forum MFC
    Réponses: 2
    Dernier message: 26/11/2007, 14h34
  3. OpenDialog avec une liste des dossiers favories
    Par J_apprenti dans le forum Delphi
    Réponses: 6
    Dernier message: 09/05/2007, 22h23
  4. Liste des dossier
    Par krfa1 dans le forum Langage
    Réponses: 2
    Dernier message: 10/10/2006, 20h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo