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

EDI Delphi Discussion :

Effacer automatiquement la liste des projets récents


Sujet :

EDI Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut Effacer automatiquement la liste des projets récents
    Bonjour !

    Allez savoir pourquoi, je n'aime pas, quand je lance Delphi XE2, avoir la liste des projets récents et je n'ai jamais réussi à changer cette option (quand je mets le nombre de fichiers à zéro j'ai quand même des fichiers qui s'affichent), ce qui fait que je vide à chaque fois la liste manuellement, ce qui est fastidieux.

    Donc j'aurais bien aimé trouver le moyen de vider la liste au moyen d'un batch ou d'un programme. Récemment j'ai cru comprendre que cette liste se trouvait dans le registre. Pour moi, le registre c'est une terre inconnue mais j'aimerais bien saisir l'occasion pour m'y mettre.

    Donc j'ai tapé regedit dans l'Invite de commandes, et en cherchant un peu j'ai trouvé ma liste à l'endroit suivant :

    HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Projects

    Je vois donc quatre lignes : (par défaut), File_0, File_1, Max Closed Files. Est-ce que je peux tranquillement supprimer File_0 et File_1 ? Deuxième question, comment je peux m'y prendre pour automatiser l'opération ?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Bonjour !

    Allez savoir pourquoi, je n'aime pas, quand je lance Delphi XE2, avoir la liste des projets récents et je n'ai jamais réussi à changer cette option (quand je mets le nombre de fichiers à zéro j'ai quand même des fichiers qui s'affichent), ce qui fait que je vide à chaque fois la liste manuellement, ce qui est fastidieux.

    Donc j'aurais bien aimé trouver le moyen de vider la liste au moyen d'un batch ou d'un programme. Récemment j'ai cru comprendre que cette liste se trouvait dans le registre. Pour moi, le registre c'est une terre inconnue mais j'aimerais bien saisir l'occasion pour m'y mettre.

    Donc j'ai tapé regedit dans l'Invite de commandes, et en cherchant un peu j'ai trouvé ma liste à l'endroit suivant :

    HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Projects

    Je vois donc quatre lignes : (par défaut), File_0, File_1, Max Closed Files. Est-ce que je peux tranquillement supprimer File_0 et File_1 ? Deuxième question, comment je peux m'y prendre pour automatiser l'opération ?

    Merci d'avance.
    Peut-être qu'avec un petit fichier .reg ... A vérifier : la possibilité d'effacer des clés avec un tel fichier.

    Sinon, un petit programme Delphi pour en pas s'ennuyer en soirée...
    @+

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Merci pour ta réponse.

    J'aimerais bien ne pas faire de fausse manipulation, et en profiter aussi pour comprendre un peu les choses.

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Salut

    Il suffit de précéder la clé avec un tiret, c'est simple comme bonjour...

    si tu as des doutes, fais un essai avec des clés créées de toutes pièces.

    @+

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Merci. Je vais expérimenter la chose.

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    D'accord pour la syntaxe du fichier .reg ; mais est-ce qu'il faut supprimer les clés ou supprimer ce qu'elles contiennent ? Si je supprime ces deux clés, ça ne pose pas de problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Files
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Projects

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Voici ce que j'ai fait jusqu'à présent.

    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
    40
    41
    42
    43
    const
      c1 = 'HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Files';
      c2 = 'HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Projects';
      c3 = 'Software\Embarcadero\BDS\9.0\Closed Files';
      c4 = 'Software\Embarcadero\BDS\9.0\Closed Projects';
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      r: TRegistry;
    begin
      r := TRegistry.Create;
      r.RootKey := HKEY_CURRENT_USER;
     
      Memo1.Lines[0] := BoolToStr(r.KeyExists(c3)); // -1
     
      if r.KeyExists(c3) then
      begin
        r.OpenKey(c3, false);
        Memo1.Lines[1] := r.ReadString('File_0'); // TSourceModule...
        r.CloseKey;
      end;
     
      r.Free;
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
      r: TRegistry;
    begin
      r := TRegistry.Create;
      r.RootKey := HKEY_CURRENT_USER;
     
      Memo1.Lines[0] := BoolToStr(r.KeyExists(c3)); // -1
      Memo1.Lines[1] := BoolToStr(r.KeyExists(c4)); // -1
     
      {
      if r.KeyExists(c1) then r.DeleteKey(c3);
      if r.KeyExists(c2) then r.DeleteKey(c4);
      }
     
      r.CloseKey;
      r.Free;
    end;

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Quand je vide la liste des projets et celle des fichiers à partir de l'EDI, et qu'ensuite j'ouvre regedit, je constate que les clés existent toujours. Ce qui a disparu, ce sont les lignes "File_0", "File_1", etc. Donc j'en déduis que supprimer les clés n'est pas la chose à faire. Suis-je dans le vrai ?

  9. #9
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    D'accord pour la syntaxe du fichier .reg ; mais est-ce qu'il faut supprimer les clés ou supprimer ce qu'elles contiennent ? Si je supprime ces deux clés, ça ne pose pas de problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Files
    HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Projects
    Pour commencer, exporter l'arborescence HKEY_CURRENT_USER\Software\Embarcadero\BDS\9.0\Closed Projects au format .reg (fichier Delphi.reg par exemple).

    D'accord pour la syntaxe du fichier .reg ; mais est-ce qu'il faut supprimer les clés ou supprimer ce qu'elles contiennent ? Si je supprime ces deux clés, ça ne pose pas de problème ?
    Après avoir fermer Delphi, puis exporter les clés, supprimes-les manuellement avec la base de registre et relance Delphi.
    Si ça fonctionne, modifie le fichier .reg en conséquence et refait le test en exécutant le fichier .reg avec un double-clic. Pour automatiser, tu pourras créér un batch avec la commande "regedit /s Delphi.reg"

    Je ne peux pas faire le test au travail (pas de Delphi et pas d'autorisation pour "bricoler" la base de registre).

    @+

  10. #10
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Tu peux aussi utiliser reg.exe (inclus dans windows). regarde ici :
    http://technet.microsoft.com/en-us/l.../cc742145.aspx
    Par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REG DELETE "HKCU\Software\Embarcadero\BDS\9.0\Closed Projects"

  11. #11
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Merci pour vos réponses, qui rejoignent ce que j'ai trouvé de mon côté. Je progresse sur plusieurs fronts (batch, VBS, Registry, RegEdit) et pense ne pas être loin de la solution.

  12. #12
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Citation Envoyé par guillemouze Voir le message
    Tu peux aussi utiliser reg.exe (inclus dans windows). regarde ici :
    http://technet.microsoft.com/en-us/l.../cc742145.aspx
    Par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REG DELETE "HKCU\Software\Embarcadero\BDS\9.0\Closed Projects"
    je connaissais pas, intéressant.

  13. #13
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Voici une solution, utilisant l'unité RegEdit de Paul TOTH.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    program TestRegEdit4;
    {$APPTYPE CONSOLE}
     
    uses
      RegEdit; // http://tothpaul.free.fr/inside/sources.php?tools.units
     
    const
      HKEY_CLASSES_ROOT     = $80000000;
      HKEY_CURRENT_USER     = $80000001;
      HKEY_LOCAL_MACHINE    = $80000002;
      HKEY_USERS            = $80000003;
      HKEY_PERFORMANCE_DATA = $80000004;
      HKEY_CURRENT_CONFIG   = $80000005;
      HKEY_DYN_DATA         = $80000006;
     
    type
      tPathValRecord = record
        path, value: string;
      end;
     
    const
      values: array[0..3]of tPathValRecord = (
        (path: 'Software\Embarcadero\BDS\9.0\Closed Files'; value: 'File_0'),
        (path: 'Software\Embarcadero\BDS\9.0\Closed Files'; value: 'File_1'),
        (path: 'Software\Embarcadero\BDS\9.0\Closed Projects'; value: 'File_0'),
        (path: 'Software\Embarcadero\BDS\9.0\Closed Projects'; value: 'File_1')
      );
     
    var
      i: integer;
     
    begin
      {
      for i := 0 to 3 do
        WriteLn(
          ReadRegString(
            HKEY_CURRENT_USER,
            values[i].path,
            values[i].value,
            ''
          )
        );
      }
     
      for i := 0 to 3 do
        if DeleteRegString(HKEY_CURRENT_USER, values[i].path, values[i].value) then
          WriteLn('OK');
     
      WriteLn('Appuyez sur Entr'#130'e...');
      ReadLn;
    end.
    Le programme est écrit en fonction des options que j'ai choisies (nombre de projets égal à deux, nombre de fichiers égal à deux).

  14. #14
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Je marque la discussion comme résolue. Il y a certainement d'autres manières de faire, mais celle-ci répond à mon problème.

    L'avantage de la fonction DeleteRegString(), comparée à d'autres solutions envisagées au cours de la discussion, c'est qu'elle ne supprime pas la clé, mais seulement son contenu.

  15. #15
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Bonjour ! J'ai légèrement amélioré mon programme. Maintenant il fonctionne quel que soit le nombre de fichiers contenus dans la liste.

    J'hésitais à le poster et à déterrer cette discussion, mais en voyant que Delphi Dabbler proposait un code du même genre, je me suis dit que je pouvais bien proposer le mien.

    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
    program ClearRecent;
    {$APPTYPE CONSOLE}
     
    (* Efface la liste des projets et fichiers récemment fermés dans l'EDI de Delphi XE2. *)
     
    uses
      RegEdit, (* http://tothpaul.free.fr/inside/sources.php?tools.units *)
      SysUtils;
     
    const
      HKEY_CURRENT_USER = $80000001;
     
    procedure DeleteValues(const path: string);
    var
      i: integer;
      value: string;
    begin
      i := 0;
      value := 'File_' + IntToStr(i);
      while ReadRegString(HKEY_CURRENT_USER, path, value, '') <> '' do
      begin
        DeleteRegString(HKEY_CURRENT_USER, path, value);
        Inc(i);
        value := 'File_' + IntToStr(i);
      end;
    end;
     
    begin
      DeleteValues('Software\Embarcadero\BDS\9.0\Closed Files');
      DeleteValues('Software\Embarcadero\BDS\9.0\Closed Projects');
    end.

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

Discussions similaires

  1. Nettoyer la liste des projets récents sous Visual 2008
    Par dede92 dans le forum Visual C++
    Réponses: 2
    Dernier message: 29/01/2011, 19h43
  2. Liste des projets utilisant DreamShield
    Par smyley dans le forum Dreamshield
    Réponses: 3
    Dernier message: 14/02/2010, 22h42
  3. [Visual Studio 2005] Gestion des projets récents
    Par soso78 dans le forum Visual Studio
    Réponses: 1
    Dernier message: 19/05/2008, 15h22
  4. Effacer la liste des documents récents
    Par damsmut dans le forum VBScript
    Réponses: 13
    Dernier message: 20/04/2008, 21h31
  5. liste des fichiers récents ouverts
    Par salihovic dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/10/2007, 09h11

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