gpt4 book ai didi

windows - Qt Installer Framework 未注册文件类型

转载 作者:行者123 更新时间:2023-12-03 11:07:39 24 4
gpt4 key购买 nike

我正在尝试使用 Qt Installer Framework(Windows 中的 3.1 版)创建 my package 的安装程序.我用于测试的包是一个图像查看器,可以加载自定义文件格式:.cjpg(本质上与 jpg 相同,但名称不同)。这个项目可以找到here .

pacakge xml 文件包含以下脚本:

function Component()
{
// default constructor
}

Component.prototype.createOperations = function()
{
component.createOperations();

if (systemInfo.productType == "windows")
{
component.addOperation("Execute","{0,3010}","@TargetDir@/VC_redist.x64.exe","/quiet","/norestart");
component.addOperation("CreateShortcut",
"@TargetDir@/image_view.exe",
"@StartMenuDir@/image_view.lnk",
"iconPath=@TargetDir@/image_view.ico")
component.addOperation("CreateShortcut",
"@TargetDir@/image_view.exe",
"@DesktopDir@/image_view.lnk",
"iconPath=@TargetDir@/image_view.ico")
component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico")
}
}

此脚本安装 VC_redist,因为我使用 MSVC 编译器进行编译,据我所知,这是必要的。此外,它还创建了一个桌面和一个开始菜单快捷方式。这三个部分工作正常。但是,新文件类型 (.cjpg) 与程序关联的部分不起作用(图标未显示,双击文件时程序未打开)。我关注了this tutorial走到这一步。关于文件注册操作,我所欣赏的唯一区别是教程定义了一个图标 ID 和一个 ProgId。如果我尝试将该部分更改为:

    component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico",
"ProgId=ImageViewer.cjpg")

文件仍未正确关联(图标未显示,双击文件时程序未打开)。如果我尝试将该部分更改为:

    component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico", 0,
"ProgId=ImageViewer.cjpg")

或:

    component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe '%1'",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico", "iconId=0",
"ProgId=ImageViewer.cjpg")

安装过程中出现以下错误:

Error during installation process (com.vendor.image_view):
Invalid arguments in RegisterFileType: 6 arguments given, 2 to 5 arguments expected in the form: <extension> <command> [description[contentType[icon]]].

关于如何将文件扩展名与提供的图标文件和程序正确关联的任何想法?

最佳答案

使用如下;

component.addOperation("RegisterFileType",
".cjpg",
"@TargetDir@/image_view.exe \"%1\"",
"Custom JPG file extension",
"text/plain",
"@TargetDir@/cjpg_file_icon.ico",
"ProgId=ImageViewer.cjpg")

我添加了 "%1" 而不是 '%1'

关于windows - Qt Installer Framework 未注册文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58728532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com