Liste des Extensions de fichier

cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002 - 13 avril 2002 à 03:47
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002 - 7 mai 2002 à 12:26
Dans l'explorer,menu Outills|Option des dossiers|Types de fichiers, une liste des extensions apparait.
Ben voila j'aimerais savoir si c possible de recuperer cette liste dans une TStringList par exemple.

Si c possible merci d'avance pour les renseignements.

Babaille!
8-)

8 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
6 mai 2002 à 18:36
Mieux encore, comment récupérer l'application assoicée à une extension :
function SearchApp(Extension: string;
out AppFound: string): boolean;
var
Reg : TRegistry;
FFileClass : string;
begin
//Initialisation des valeurs de retour
Result := False;
AppFound:='';

//Lecture de la base de registres
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;

//L'extension est-elle recensée dans le système ?
if Reg.OpenKeyReadOnly(Extension) then
begin
FFileClass := Reg.ReadString( '' );
Reg.CloseKey;
end;

//Si recensée, trouver l'appli associée
//à l'extension
if FFileClass <> '' then
begin
if Reg.OpenKeyReadOnly( FFileClass + '\Shell\Open\Command' ) then
begin
AppFound := Reg.ReadString( '' );
Reg.CloseKey;
Result := True;
end;
end;
Reg.Free;
end;

La réponse à ta question est contenue dans le code ci-dessus si tu la combines avec un objet TRegistry :
Renvoie une liste de chaînes contenant les noms de toutes les sous-clés de la clé en cours.

procedure GetKeyNames(Strings: TStrings);

May Delphi be with you.
0
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
6 mai 2002 à 20:12
Je l'avais trouver, grace a DC, merci.

Quand a ton code il y a un peu plus simple :

function FindExec(sFile: String): String;
var Exec: array [0..255] of Char;
begin
FindExecutable(PChar(ExtractFileName(sFile)), PChar(ExtractFilePath(sFile)), Exec);
Result:=String(Exec);
end;

Qu'est t'en pense l'ami?

Babaille?
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
6 mai 2002 à 21:48
Ben, le résultat n'est pas franchement concluant.
Mais le but poursuivi est différent à l'origine : je recherchais l'application associée à une extension donnée.
Je dirais même qu'il s'agit (ta solution) de quelque chose de bien compliqué alors que l'on obtient le même résultat avec ParamStr(0) .

May Delphi be with you.
0
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
6 mai 2002 à 22:24
Umh, j'aimerais avoir plus de precision.

En quoi cela n'est-il pas cocluant?

De plus d'ou vient la complication?

Bye.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
7 mai 2002 à 00:29
Ben, j'ai peut-être pas bien compris l'usage. L'aide de delphi dit que FindExecutable retourne un THandle et le chemin de l'éxécutable dans le 3e paramètre.
Or, si l'on fournit un nom de fichier comme paramètre, la fonction me retourne...le nom de l'application et le répertoire courant ! Ce qui équivaut à utiliser ParamStr(0) sans déclarer un array of char ni transtyper des string en PChar. De plus, l'application recherchée doit être chargée, sinon comment Windows retrouverait-il le Handle ?
Qu'en penses-tu ?

May Delphi be with you.
0
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
7 mai 2002 à 01:01
Ben j'ai pas l'aide sur FindExec (ca doit etre dans la SDK pe etre) mais tout ce ke je sais c ke ca marche nickel.
Fais un essai avec un TOpenDialog, ouvre n'importe quoi et affiche dans un TLabel FindExec(OpenDialog.FileName) et tu verra le nom complet (avec path) du prog a ki le fichier ouvert est associé.
Et l'apli associé na pas a etre chargé.

Tandis ke ce ke je comprend dans l'aide sur ParamStr(0) l'apli doit etre executer.

Alors elle est ou la nuance la?
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
7 mai 2002 à 08:30
Affirmatif, tu as raison.
En réalité, je l'avais testé en saisissant le nom d'une unité pascal dans un TEdit et il me envoyait"c:\Program" comme réponse alors que les extensions .pas sont bien enregistrées dans la système ! Essayes et tu verras.
Un fichier .dpr n'est pas plus reconnu.

Néanmoins, ta fonction m'intéresse beaucoup.

Cependant, la méthode de recherche des extensions de fichiers que je t'ai envoyée fonctionne également et elle te donne le point de départ de la méthode à utiliser.

May Delphi be with you.
0
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
7 mai 2002 à 12:26
Je vai voir pour les pas, ok.

Cette fonction (FinExec) sort d'une autre qui permet d'ouvrir un fichier et attend sa fermetture (je l'avais deja poster dans le forum).

Je vais les mettre en source ce soir.

Sinon pour ton code il est clair ke c'est tout a fais la demarche pour optenir la liste des extensions (utilisation du registre).

Babaille l'ami.
0
Rejoignez-nous