在Qt中有一个QDesktopServices::openUrl函数,它可以打开默认程序打开文件,比如当你想用Microsoft Office打开.docx文件时。然而,如果没有为请求的文件扩展名关联默认程序,该函数将只返回0并且不会做任何事情。我希望Qt能够显示类似于这样的内容:
跨平台的解决方案将是理想的。
在Qt中是否可能实现?
跨平台的解决方案将是理想的。
在Qt中是否可能实现?
QDesktopServices::openUrl(QUrl::fromLocalFile("D:/file"));
#include <ShlObj.h>
bool openWith(const QString &filePath)
{
QString nativePath = QDir::toNativeSeparators(filePath);
OPENASINFO oi = {};
oi.pcszFile = reinterpret_cast<LPCWSTR>(nativePath.utf16());
oi.oaifInFlags = OAIF_ALLOW_REGISTRATION | OAIF_EXEC;
return SHOpenWithDialog(NULL, &oi) == S_OK;
}