当前位置: 首页>>技术问答>>正文


如何防止Wine添加文件关联?

, ,

问题描述

Wine会自动添加某些mimetypes和文件关联(例如,.ini文件的notepad.exe)。已经有一个answer解释了如何删除这些关联。

但是如何防止Wine一次又一次地添加呢?

最佳解决方法

完全禁用winemenubuilder.exe将阻止wine劫持您的文件关联,但它也会阻止它为新安装的软件创建菜单条目,这可能是一种不受欢迎的行为。更好的解决方案是:

  1. 删除现有的葡萄酒劫持(from wine FAQ):

    rm -f ~/.local/share/mime/packages/x-wine*
    rm -f ~/.local/share/applications/wine-extension*
    rm -f ~/.local/share/icons/hicolor/*/*/application-x-wine-extension*
    rm -f ~/.local/share/mime/application/x-wine-extension* 
    
  2. 编辑/usr/share/wine/wine.inf(以root用户身份),找到[Services]部分:

    [Services]
    HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r"
    ...
    

    并编辑它所以它说:

    [Services]
    HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -r"
    ...
    

    (即,在没有-a开关的情况下启动winemenubuilder.exe)。这将阻止更新新用户帐户(或使用新的WINEPREFIX es)上的文件关联。

  3. 以类似的方式编辑$WINEPREFIX/system.reg文件(如果存在)。在哪里说

    [Software\\Microsoft\\Windows\\CurrentVersion\\RunServices]
    "winemenubuilder"="C:\\windows\\system32\\winemenubuilder.exe -a -r"
    

    删除-a开关。 (默认情况下,WINEPREFIX=$HOME/.wine。)

这样可以防止葡萄酒盗取你喜欢的mimeapps,但winemenubuilder仍会运行并为你的Windoze软件创建方便的桌面条目。

次佳解决方法

来自http://wiki.winehq.org/FAQ

不希望Windows应用程序的安装程序更改文件类型关联,添加菜单项或创建桌面链接的用户可以禁用winemenubuilder.exe。做这件事有很多种方法:

  • 在winecfg中:在运行安装程序之前,运行winecfg。转到Libraries选项卡,在”New overrides”框中键入winemenubuilder.exe(它不在下拉列表中)。单击“添加”,然后从”Existing overrides”框中选择它。单击”Edit”并从列表中选择”Disable”,然后单击”Apply”。

  • 注册表文件:如果您需要多次应用该设置(例如,每次重新创建Wine前缀),这种方法可能更方便。创建一个名为扩展名.reg的文本文件(例如,disable-winemenubuilder.reg),其中包含以下内容:

    [HKEY_CURRENT_USER\Software\Wine\DllOverrides] 
    "winemenubuilder.exe"=""
    

    要应用该设置,请运行regedit disable-winemenubuilder.reg

  • 环境变量:运行安装程序时设置WINEDLLOVERRIDES环境变量,例如,

    WINEDLLOVERRIDES=winemenubuilder.exe=d wine setup.exe
    

禁用winemenubuilder.exe将导致wine程序打印无法找到的错误(尽管错误似乎不会干扰程序操作)。


避免错误的另一种方法是用do-nothing程序替换它。使用MinGW的wine下的gcc编译以下内容,并将可执行文件放在C:\Windows\System32\winemenubuilder.exe中:

  int main() { /* Do nothing */ return 0; }

然后按照与上面相同的步骤,但将winemenubuilder.exe设置为”native”而不是”disable”。

第三种解决方法

因为这是谷歌的第一次热播。 Wine FAQ现在列出了新版葡萄酒的替代方法。

“从wine-3.14开始,winecfg在桌面集成选项卡上有一个”管理文件关联“复选框。检查它可以让winemenbuilder创建文件关联并取消选中它会禁用该行为。”

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2898.html,未经允许,请勿转载。