如何找到要在 Wine 中使用的 Windows 程序的 ProgID?

如何找到要在 Wine 中使用的 Windows 程序的 ProgID?

您可以使用以下方式从终端打开 Wine 中特定程序中的文档

wine start /ProgIDOpen <ProgID> <Document_to_open>

这种格式是必要的,因为以其他方式调用 Wine 程序将不会打开文档。例如,以下启动应用程序,但不打开文档。

/path/to/prog.exe <Document_to_open>
wine /path/to/prog.exe <Document_to_open>

但是,如何找到与每个程序相关的信息并不明显<ProgID>。我该如何找到这些信息?

答案1

ProgID 在 中列出$WINEPREFIX/system.reg,默认为~/.wine/system.reg。它们的格式为。

[Software\\Classes\\FoxitReader.FDFDoc] 1382350649

尽管还有额外的半重复行,例如

[Software\\Classes\\FoxitReader.FDFDoc\\DefaultIcon] 1382350649

要列出所有 ProgID,请使用以下命令(在终端中)。

sed -rn 's/^\[Software\\\\Classes\\\\([^\]*)\].*/\1/p' system.reg | less

对于不熟悉此命令的人less:要搜索,请按/,键入短语然后Enter;要退出,请按q

答案2

这可能有点晚了,但既然你呼吁更简单的方法(也为了未来的读者),这就是我发现的。我自己没有发现,功劳归于这篇文章Ubuntu 论坛

由于 Windows 使用驱动器号作为其分区,而 Linux 遵循另一种概念,Wine 将您的本地文件系统链接到,$WINEPREFIX/dosdevices/z:因此使用 Wine 安装的程序会在驱动器 Z: 下找到您的文件系统,从而可以访问您的文件。您无需费力地在 Windows 注册表中查找,只需在参数中预先添加文件路径即可Z:。因此,要使用 Foxit Reader 打开 PDF 文件,您只需执行如下命令:

wine /path/to/FoxitReader.exe Z:/path/to/whatever_file.pdf

如果您想将程序放入“打开方式”列表中,以便通过右键单击文件来使用特定程序打开文件,您可以在目录中创建自定义桌面条目/home/user/.local/share/applications并附加到Z:%fExec 命令。按照示例,Foxit Reader 的桌面条目可能如下所示(假设WINEPREFIX设置为特定 Wine 环境的路径):

[Desktop Entry]
Name=Foxit Reader
Exec=wine "$WINEPREFIX/drive_c/path/to/FoxitReader.exe" Z:%f
Encoding=UTF-8
Icon=DBA8_FoxitReader.0
Version=1.0
Type=Application
NoDisplay=true

与上述帖子相反,我没有必要添加所有这些引号。如果这对您不起作用,请尝试将它们重新添加到 ( '""Z:%f""') 中。

相关内容