将文件扩展名与 Shell OPEN 命令和应用程序关联






4.76/5 (17投票s)
2000年6月23日

262428

5017
注册表条目和 MFC 类,用于将文件扩展名与程序关联。
引言
此源代码包含一个类 CGCFileTypeAccess
,它可以将文件扩展名与程序关联。
关联允许在 Windows 资源管理器窗口中单击图标时激活程序的新的实例。文件的完整文件路径将作为命令行参数发送到该程序。
“打开”命令也出现在文件类型的 Shell 上下文菜单中。从上下文菜单中选择“打开”命令会将文件作为命令行参数发送到程序的新的实例。
使用该类关联文件扩展名的示例如下所示,可以在演示程序的 InitInstance
中找到。
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();
相关的注册表条目都位于 HKEY_CLASSES_ROOT
下。 两个主要的根键是“FileExtension”和“Document Class Name”。 这些两个主要键下的键和值控制文件关联和 Shell 打开命令。
演示程序将执行上面列出的文件关联代码。 运行至少一次后,每次“打开”关联的文件类型时,程序都会在消息框中显示来自命令行的文件路径。