我使用MFC编写了一个C++项目,发现了一个小但令人不快的错误。例如,我可以选择使用OpenWith对话框打开.ai文件。如您所知,OpenWith对话框中有一个复选框"始终使用所选程序打开此类文件"选项。例如,如果用户选择了WindowsImageViewer(WIV)并忘记禁用复选框,则windows会在WIV中打开该文件,当然写入时,该文件将无法打开。然后,所有.ia格式的文件都只能用WIM打开。这个问题可以通过编辑regedit来解决,但它对用户不友好。
你能建议一些有用的东西吗,例如删除或使复选框处于非活动状态。
这就是我调用OpenWithDialog的方式:AGS::WString path=L"shell32.dll,OpenAs_RunDLL"+f.getAbsolutePath();ShellExecute(NULL,L"open",L"rundll32.exe",路径.c_str(),NULL,SW_SHOW);
在文件路径的末尾添加了"。AGS::WString path=L"shell32.dll,OpenAs_RunDLL"+f.getAbsolutePath()+";
尝试使用SHOpenWithDialog并设置相应的标志。