Click here to Skip to main content
Click here to Skip to main content

Associate File Extension with Shell OPEN command and Application

By , 22 Jun 2000
 
  • Download source files - 3 Kb
  • Download demo project - 17 Kb
  • Introduction

    This source contains a class CGCFileTypeAccess that can associate a file extension with a program.

    The association allows a new instance of the program to be activated when the icon is clicked upon in the Windows Explorer window. The full file path to the file will be sent to the program on the command line.

    The Open command also appears on the shell context menu for the file type. Selection of the open command from the context menu sends the file on the command line to a new instance of the program.

    An example of associating a file extension using the class would be done as follows, and can be found in the InitInstance of the demo program:

    CGCFileTypeAccess TheFTA;
    
    // get full file path to program executable file
    TCHAR	szProgPath[MAX_PATH * 2];
    ::GetModuleFileName(NULL, szProgPath, sizeof(szProgPath)/sizeof(TCHAR));
    
    CString csTempText;
    
    TheFTA.SetExtension("CGFILETYPETEST");
    
    // just pass file path in quotes on command line
    csTempText  = szProgPath;
    csTempText += " \"%1\"";
    TheFTA.SetShellOpenCommand(csTempText);
    TheFTA.SetDocumentShellOpenCommand(csTempText);
    
    TheFTA.SetDocumentClassName("CGFileType.Document");
    
    // use first icon in program
    csTempText  = szProgPath;
    csTempText += ",0";
    TheFTA.SetDocumentDefaultIcon(csTempText);
    
    // set the necessary registry entries	
    TheFTA.RegSetAllInfo();
    

    The relevant registry entries are all under HKEY_CLASSES_ROOT. The two primary root keys are .'FileExtension' and 'Document Class Name'. Keys and values underneath these two primary keys control the file association and the shell open command.

    The demo program will execute the file association code listed above. After it has been run at least once, each time you 'open' one of the associated file types, the program will display the file path from the command line in a message box.

    License

    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here

    About the Author

    Blake V. Miller
    Web Developer
    United States United States
    Member
    No Biography provided

    Sign Up to vote   Poor Excellent
    Add a reason or comment to your vote: x
    Votes of 3 or less require a comment

    Comments and Discussions

     
    Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
    You must Sign In to use this message board.
    Search this forum  
        Spacing  Noise  Layout  Per page   
    QuestionGet path of a file clicked upon in windows explorer.memberMahdi Nejadsahebi14 Nov '12 - 21:22 
    GeneralMy vote of 5memberMahdi Nejadsahebi14 Nov '12 - 21:09 
    Questionwin7memberMember 80653887 Dec '11 - 23:17 
    QuestionHow to change the default icon indexmemberkrishnakumartm27 Jun '11 - 0:22 
    GeneralDoesn't workmemberdpreznik12 May '11 - 4:01 
    GeneralDoes not work if the user has specified another default applicationmemberdragomir5 Mar '09 - 6:20 
    QuestionOpen file errormemberRui Frazão26 Dec '06 - 6:51 
    GeneralDelphi applicationsmemberSyhon23 Nov '06 - 21:12 
    GeneralCool... now how do you receive the open command...memberM i s t e r L i s t e r16 Oct '06 - 12:53 
    GeneralRe: Cool... now how do you receive the open command...memberBadJerry2 Sep '09 - 0:04 
    GeneralSimple C# versionmembercristiscu21 Jul '06 - 9:14 
    QuestionRe: Simple C# versionmemberFrEaK_CH25 Sep '06 - 7:35 
    AnswerRe: Simple C# versionmembercristiscu26 Sep '06 - 15:27 
    GeneralLong files namesmemberKetinla26 Jan '06 - 0:21 
    Questionhow to check...membercreative0027 Nov '05 - 20:20 
    OK, every thing is fine. but can you help me finding a way to check the association?
    i have to check the association for an extention first with my app. if it is associated with some other app, i have to prompt user and then register it with app if wanted.
     
    Thanx,
     
    Ahmed: a dreaming soul.
    GeneralSetDocumentDefaultIconmemberehh15 Nov '05 - 7:49 
    GeneralRe: SetDocumentDefaultIconmemberBlake V. Miller24 Nov '05 - 9:06 
    GeneralThanks a lot...memberSreekanth Muralidharan13 Oct '05 - 19:07 
    QuestionHow to tell the explorer refresh the icon?memberMichael Leung24 Jul '05 - 1:36 
    AnswerRe: How to tell the explorer refresh the icon?memberpo.coulet14 Sep '05 - 2:51 
    GeneralRe: How to tell the explorer refresh the icon?memberMandrago10 Jul '07 - 2:44 
    GeneralRe: How to tell the explorer refresh the icon?membervigylant18 Jan '09 - 7:46 
    QuestionMultiple Files TOgether ???membertot2ivn18 Feb '05 - 0:16 
    AnswerRe: Multiple Files TOgether ???memberBlake V. Miller24 Feb '05 - 16:12 
    GeneralRe: Multiple Files TOgether ???membertot2ivn24 Feb '05 - 17:47 
    QuestionAutomatically open document extension?memberAAntix10 Jan '05 - 23:00 
    AnswerRe: Automatically open document extension?memberBlake V. Miller18 Jan '05 - 17:20 
    Generalfile namesmemberbrian scott14 Apr '04 - 6:23 
    GeneralRe: file namesmemberBlake V. Miller18 Jan '05 - 17:11 
    GeneralRe: file namesmembercabaa992 Aug '05 - 9:50 
    GeneralThe Next StepsmemberJohn Ulvr10 Apr '03 - 2:09 
    GeneralRe: The Next StepsmemberBlake V. Miller18 Jan '05 - 17:16 
    Generallong file name problemmemberAnonymous11 Mar '02 - 23:51 
    GeneralRe: long file name problemmemberBlake V. Miller18 Jan '05 - 17:18 
    GeneralRe: long file name problemmemberSreekanth Muralidharan28 Nov '05 - 17:33 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

    Permalink | Advertise | Privacy | Mobile
    Web04 | 2.6.130523.1 | Last Updated 23 Jun 2000
    Article Copyright 2000 by Blake V. Miller
    Everything else Copyright © CodeProject, 1999-2013
    Terms of Use
    Layout: fixed | fluid