我是这个主题的新手。如果有些不清楚的地方需要澄清,请发表评论,我将尝试提供更多详细信息。
我一直在从事一个几年前实施的项目,需要进行一些调整以适应当今的需求。
此Windows桌面应用程序具有使用IApplicationAssociationRegistration
界面的几种方法将该应用程序设置为默认应用程序的功能。
部分代码:
BOOL CDefaultPrograms::SetActiveSendAllDefaults()
{
BOOL bRet = FALSE;
IApplicationAssociationRegistration *pAAR;
try
{
HRESULT hr = CoCreateInstance(
CLSID_ApplicationAssociationRegistration,
NULL,
CLSCTX_INPROC,
__uuidof(IApplicationAssociationRegistration),
(void**)&pAAR);
if (SUCCEEDED(hr))
{
hr = pAAR->SetAppAsDefaultAll(ACTIVESEND_REGNAME);
bRet = SUCCEEDED(hr);
pAAR->Release();
}
}
catch(...)
{
}
return bRet;
}
根据文档,此功能仅适用于Windows 8之前的版本。
问题:对于Windows 8+,相同功能的替代方案是什么?
答案 0 :(得分:1)
别无选择,微软不希望应用程序由于行为不当的第三方应用程序而更改默认值。
如果您想进入无证件领域,Explorer项中的子项将存储每个声明的文件扩展名的“加密”默认程序。