如何将Wine中的所有文件类型与其相应的本机应用程序相关联?

麦斯特里翁

对于单个文件类型,这很容易做到,如如何在Wine中将文件类型与本机应用程序关联?,方法是.reg为所需的文件类型创建一个但这仅适用于AVI。我使用了一些酒类应用程序(uTorrent,Soulseek,Eudora等),它们可以启动各种文件。例如,电子邮件附件可以是JPG,DOC,PDF,PPS ...这不可能(也不是理想的)来跟踪电子邮件中可能会收到的所有文件类型或洪流下载的文件类型。

因此,我提出了一个更通用,更广泛的解决方案。我需要文件关联以兑现当前配置的任何本机应用程序。我希望对系统中配置的所有文件类型都执行此操作

我已经想出了使解决方案通用的方法。只需将.regfor中启动的应用替换winebrowser,如下所示:

[HKEY_CLASSES_ROOT\.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOT\PDFfile\Shell\Open\command]
@="C:\\windows\\system32\\winebrowser.exe \"%1\""

香港专业教育学院测试过,它可以正常工作。由于winebrowserxdg-open用作后端,并将我的Windows路径转换为Unix路径,因此启动了正确的(Linux)应用程序。

因此,我需要一个用于Wine注册表的“批处理”更新程序,这种wine-update-associations脚本可以在安装新应用程序时立即运行。也许可以执行以下操作的工具:

  • 列出我的系统中与默认的已安装应用程序相关联的所有Mime Types类型
  • 提取所有需要的信息(glob,mime类型等)
  • 以上述格式生成.REG文件

棘手的部分是:我搜索了很多,以查找有关在Ubuntu 10.10及更高版本中如何完成关联的信息,至少可以说文档稀缺且令人困惑。Freedesktop.org没有完整的规范,甚至Gnome文档也已过时。到目前为止,我已经收集了4个包含关联信息的文件,但是对于使用哪个(或为什么)或如何使用它们来生成.reg文件一无所知

~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list

任何帮助,脚本或解释将不胜感激!

谢谢!

麦斯特里翁

多年后,我制作了一个小的实用程序,可以扫描MIME数据库(系统和用户),并在Windows注册表中注册所有已知的本机mime类型。

xdg-open如果存在用于该mime类型的默认(本机)应用程序,则它用于打开文件,否则用于packagekit搜索可以处理该文件的包(就像Nautilus所做的一样)。因此,我不再需要仅注册具有已安装的本机应用程序的扩展程序的最初要求。但是,该脚本的早期版本仅过滤此类类型。使之成为可能的代码片段是:

perl -e '
    use strict; use warnings;
    use File::MimeInfo::Magic; use File::MimeInfo::Applications;
    while (my $line = <STDIN>) {
      chomp($line);
      my ($ext, $mime) = (split/\t/, $line);
      my ($def, @apps) = mime_applications_all($mime);
      print "$line\n" if ($def || @apps)
    }'

默认情况下,我的脚本仅在Windows注册表中注册没有处理程序的本机类型,但它也可以覆盖此类关联(例如,在本机查看器中而不是默认的Gecko wine浏览器中打开jpeg文件)。即使Windows中没有处理程序,它也可以忽略某些扩展。

它尽力做到对winemenubuilder友好,这意味着它创建的所有关联都不会被winemenubuilder发布为本机关联(或x-wine-extension mimetypes),这将是丑陋的并可能导致循环。这非常棘手,而且还不完善,特别是在使用大小写混合的情况下(例如.C和.c)

就是说,我希望这个脚本对每个人都有帮助:

https://github.com/MestreLion/wine-tools/blob/master/wine-import-extensions

欢迎改进!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将Wine中的所有文件类型与其相应的本机应用程序相关联?

来自分类Dev

如何将本机应用程序与WINE中的文件类型相关联

来自分类Dev

将文件类型与 ubuntu 18.04 中的程序相关联

来自分类Dev

将文件扩展名与C#应用程序中的应用程序相关联

来自分类Dev

将文件扩展名与C#应用程序中的应用程序相关联

来自分类Dev

您如何将.exe文件扩展名与Windows中的程序相关联?

来自分类Dev

如何将具有多个行为的类与其他类相关联?

来自分类Dev

Windows 注册表将单个应用程序与具有唯一图标的多种文件类型相关联

来自分类Dev

如何将W3wp.exe的运行实例与特定的Web应用程序相关联?

来自分类Dev

快速将文件类型与iOS应用程序相关联

来自分类Dev

我的应用程序使用rem值。如何将其与像素相关联?

来自分类Dev

将文件类型与Chrome打包应用相关联

来自分类Dev

以编程方式将文件扩展名与Windows上的应用程序相关联

来自分类Dev

将文件类型与特定程序相关联

来自分类Dev

将关键字与统一启动器中的应用程序相关联

来自分类Dev

将关键字与统一启动器中的应用程序相关联

来自分类Dev

如何将torrent文件与Vuze相关联?

来自分类Dev

如何将集合中的文本文件与fs集合中的图像相关联?

来自分类Dev

如何将密钥文件与FileZilla中的站点相关联

来自分类Dev

浏览器如何将Cookie与其发送Cookie的服务器相关联?

来自分类Dev

如何在 KDE 中更改一个特定应用程序的所有文件关联(MIME 类型)?

来自分类Dev

如何将用户的支出与其在Firebase中的个人资料相关联?

来自分类Dev

在Swift 3中写入Firebase时,如何将我的值与其键相关联?

来自分类Dev

与元素类型“应用程序”相关联的属性“ andriod:name”的前缀“ andriod”是否绑定?

来自分类Dev

与元素类型“应用程序”相关联的属性“ andriod:name”的前缀“ andriod”是否绑定?

来自分类Dev

如何将图像文件夹与带有图像名称的 xml 文件相关联?

来自分类Dev

如何将 Ellipse 的所有属性放入 WPF 应用程序的通用数据类型中

来自分类Dev

如何将静态字符串与对象类型C#相关联

来自分类Dev

如何获取与Django中的User相关联的所有相关对象?

Related 相关文章

  1. 1

    如何将Wine中的所有文件类型与其相应的本机应用程序相关联?

  2. 2

    如何将本机应用程序与WINE中的文件类型相关联

  3. 3

    将文件类型与 ubuntu 18.04 中的程序相关联

  4. 4

    将文件扩展名与C#应用程序中的应用程序相关联

  5. 5

    将文件扩展名与C#应用程序中的应用程序相关联

  6. 6

    您如何将.exe文件扩展名与Windows中的程序相关联?

  7. 7

    如何将具有多个行为的类与其他类相关联?

  8. 8

    Windows 注册表将单个应用程序与具有唯一图标的多种文件类型相关联

  9. 9

    如何将W3wp.exe的运行实例与特定的Web应用程序相关联?

  10. 10

    快速将文件类型与iOS应用程序相关联

  11. 11

    我的应用程序使用rem值。如何将其与像素相关联?

  12. 12

    将文件类型与Chrome打包应用相关联

  13. 13

    以编程方式将文件扩展名与Windows上的应用程序相关联

  14. 14

    将文件类型与特定程序相关联

  15. 15

    将关键字与统一启动器中的应用程序相关联

  16. 16

    将关键字与统一启动器中的应用程序相关联

  17. 17

    如何将torrent文件与Vuze相关联?

  18. 18

    如何将集合中的文本文件与fs集合中的图像相关联?

  19. 19

    如何将密钥文件与FileZilla中的站点相关联

  20. 20

    浏览器如何将Cookie与其发送Cookie的服务器相关联?

  21. 21

    如何在 KDE 中更改一个特定应用程序的所有文件关联(MIME 类型)?

  22. 22

    如何将用户的支出与其在Firebase中的个人资料相关联?

  23. 23

    在Swift 3中写入Firebase时,如何将我的值与其键相关联?

  24. 24

    与元素类型“应用程序”相关联的属性“ andriod:name”的前缀“ andriod”是否绑定?

  25. 25

    与元素类型“应用程序”相关联的属性“ andriod:name”的前缀“ andriod”是否绑定?

  26. 26

    如何将图像文件夹与带有图像名称的 xml 文件相关联?

  27. 27

    如何将 Ellipse 的所有属性放入 WPF 应用程序的通用数据类型中

  28. 28

    如何将静态字符串与对象类型C#相关联

  29. 29

    如何获取与Django中的User相关联的所有相关对象?

热门标签

归档