Les Snippets

Connexion

Association d'un programme et d'un icone à une extension de fichier

Niveau requis pour utiliser/comprendre cette source : 3 ( Expert )
Créé le 23/01/2011 21:03:45 et initié par WhiteHippo [Liste]
Vue : 4540
Catégorie(s) : Base de registre, API, Trucs & Astuces, Système
Langages dispo pour ce code :
- Delphi 5



Langage : Delphi 5
Date ajout : 23/01/2011
Posté par WhiteHippo [Liste]

uses Registry, ShlObj ;

procedure EnregistrerTypeDeFichier
  ( const Extension     : string
  ; const TypeDeFichier : string
  ; const Description   : string
  ; const NomExecutable : string
  ; const IndexIcone    : Integer
  ) ;
var
  Registre : TRegistry;
begin
  Registre := TRegistry.Create;
  with Registre do
  try
    RootKey := HKEY_CLASSES_ROOT ;
    Access  := KEY_WRITE         ;

    OpenKey( Extension, True) ;
    WriteString('', TypeDeFichier);
    CloseKey;

    OpenKey(TypeDeFichier, True);
    WriteString('', Description);
    CloseKey;

    OpenKey(TypeDeFichier + '\DefaultIcon', True);
    WriteString('' + '\DefaultIcon',  AnsiQuotedStr(NomExecutable, '"') + ',' + IntToStr(IndexIcone));
    CloseKey;

    OpenKey(TypeDeFichier + '\Shell\Open', True);
    WriteString('', '&Open');
    CloseKey;

    OpenKey(TypeDeFichier + '\Shell\Open\Command', True);
    WriteString('', AnsiQuotedStr(NomExecutable, '"') + AnsiQuotedStr('%1', '"') );
    CloseKey;

    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
  finally
    Registre.Free;
  end;
end;

// Exemple d'utilisation
procedure TForm1.Button1Click(Sender: TObject);
begin
  EnregistrerTypeDeFichier
    ( '.ext'
    , 'Fichier EXT'
    , 'Fichier EXT : Description...'
    , Application.ExeName
    , 1
    ) ;
end;



Snippets en rapport avec : Shell, Icone, Extension, Association, Type de fichier



Codes sources en rapport avec : Shell, Icone, Extension, Association, Type de fichier

{C / C++ / C++.NET} INFOTIP SHELL EXTENSION (BULLE DE L'EXPLORATEUR WINDOWS) (WIN32 API)
Voici une autre extension du Shell. Il s'agit de InfoTip permettant de personnaliser le texte conten...

{C / C++ / C++.NET} EXTENSION DU SHELL: MENU CONTEXTUEL EN C (WIN32 API)
Suite à mon pécédent code source: http://www.cppfrance.com/codes/EXTENSION-SHELL-MENU-CONTEXTUEL-WI...

{Visual Basic, VB6, VB.NET, VB 2005} OBTENEZ L'ICÔNE D'UN FICHIER GRÂCE À SON EXTENSION.
Petite "class" avec une propriété et une méthode. Utilisation très Simple, Le tout avec un exemple e...

{Visual Basic, VB6, VB.NET, VB 2005} ASSOCIATION D'UNE EXTENSION A UNE APPLICATION (EX: *.DOC = MS WORD)
Faire les déclaration suivantes dans un MODULE: Const HKEY_CLASSES_ROOT = &H80000000 Const HKEY_...

{Visual Basic, VB6, VB.NET, VB 2005} PLACER L'ICONE D'UN PROJET SUR LE BUREAU
J'ai décidé de retirer toutes les sources que j'ai déposées sur ce site en raison de l'attitude de c...

{Visual Basic, VB6, VB.NET, VB 2005} UNE PROCÉDURE TRÈS SIMPLE POUR LANCER ET ARRÊTER L'EXÉCUTION D'UN PROJET.
J'ai décidé de retirer toutes les sources que j'ai déposées sur ce site en raison de l'attitude de c...

{C# / C#.NET} EXTENSION DE LA CLASSE STRING
Comment ajouter une fonction à une classe "String"? J'ai besoin d'une fonction "DoubleApostrophes" ...

{Visual Basic, VB6, VB.NET, VB 2005} WINDOWS 8_INTERFACE METRO OU CLASSIQUE
Si vous avez testé la version preview de Windows 8, vous avez sûrement été surpris par l'interface ...

{JAVA / J2EE} EXEMPLE D'UTILISATION DE LA CLASSE RUNTIME
Cette source présente deux exemples qui illustrent l'utilisation de la classe Runtime - Une classe ...

{Visual Basic, VB6, VB.NET, VB 2005} GEST COTISATION - ASSOCIATION
Un logiciel permettant de gérer une association (cotisation-petite comptabilité). se connecte à une ...