如何在Windows 8中设置关联?

我需要帮助。 我想在Windows 8中正确设置关联文件。我有一个编写MFC C ++的程序。 这是.txt查看器。 而我尝试关联文件为当前用户。 我为我的应用程序创build安装程序,我可以将我的应用程序设置为默认,但它不适用于Windows 8。

需要使用什么? 谢谢。

在Windows 8中,只有一种方法可以做到这一点。 您应该将您的应用程序添加到默认应用程序。 然后使用“默认程序”来要求用户设置关联。 不确定旧的方式与注册表编辑现在不可用。 在Windows 8中添加了哈希变量到UserChoice注册表项。 这是用户和应用程序的独特之处。 如果它是错的YourAppName不是默认启动,但Windows 8要求选择应用程序。

简短说明如何将应用程序添加到默认程序。 有完整的指南http://msdn.microsoft.com/en-us/library/windows/desktop/cc144154%28v=vs.85%29.aspx添加到注册表

key: "HKLM\Software\RegisteredApplications" name: "YourAppName" value: "Sofware\YouCompany\YourAppName\Capabilities" key: "HKLM\Sofware\YouCompany\YourAppName\Capabilities" name: "ApplicationDescription" value: "just a description" key: "HKLM\Sofware\YouCompany\YourAppName\Capabilities" name: "ApplicationName" value: "YourAppName" key: "HKLM\Sofware\YouCompany\YourAppName\Capabilities\FileAssociations" name: ".txt" value: "Progid.txt" 

现在YourAppName添加到默认程序

需要与应用程序文件关联调用对话。 可以使用IApplicationAssociationRegistrationUI :: LaunchAdvancedAssociationUI完成http://msdn.microsoft.com/en-us/library/windows/desktop/bb776329%28v=vs.85%29.aspx

  IApplicationAssociationRegistrationUI *applicationAssociationRegistrationUI = 0; CoCreateInstance(CLSID_ApplicationAssociationRegistrationUI, 0, CLSCTX_INPROC_SERVER, IID_IApplicationAssociationRegistrationUI, (LPVOID*)&applicationAssociationRegistrationUI); if (applicationAssociationRegistrationUI) applicationAssociationRegistrationUI->LaunchAdvancedAssociationUI(L"YourAppName");