我想检查是否安装了 pdf 阅读器。我的想法是使用 QDesktopServices::openUrl("path/test.pdf")
如果它返回“false”,我知道没有安装 pdf 阅读器。问题是,如果安装了 pdf 阅读器,它会打开 pdf。我可以“禁用”它吗?
/编辑:我的解决方案:
QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.pdf\\OpenWithProgids", QSettings::NativeFormat);
if (settings.allKeys().size() == 0) {...}
最佳答案
Can I "disable" that?
简单的回答 - 不。
由于 QDesktopServices::openUrl 要求系统使用相关程序打开文件,因此您无法通过 Qt 禁用它。
虽然不推荐,但您可以在每个平台的基础上禁用它,但如果您沿着这条路走下去,我建议使用每个平台自己的功能来检查是否有与 pdf 数据文件关联的应用程序。
在 Windows 上,它存储在 registry 中,而 OS X 使用 LaunchServices .
但是,仅仅因为文件关联不存在,并不意味着没有安装合适的应用程序来打开 pdf。
如果您希望能够显示 pdf,最好直接在您的程序中处理它。您可以阅读有关该 here 的一些选项.
关于c++ - 检查是否安装了 PDF 阅读器 - QDesktopServices::openUrl(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190125/