您可以使用以下方式从终端打开 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:%f
Exec 命令。按照示例,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""'
) 中。