Answers:
完全禁用winemenubuilder.exe将阻止wine劫持您的文件关联,但也将阻止它为新安装的软件创建菜单项,这可能是不希望的行为。更好的解决方案是:
删除现有的葡萄酒劫持事件(从葡萄酒常见问题解答中):
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*
编辑/usr/share/wine/wine.inf
(以根用户身份),找到以下[Services]
部分:
[Services]
HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r"
...
并对其进行编辑,使其显示为:
[Services]
HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -r"
...
(即winemenubuilder.exe
无需-a
开关即可开始)。这将防止更新新用户帐户(或使用新WINEPREFIX
es)上的文件关联。
$WINEPREFIX/system.reg
以类似方式编辑文件(如果存在)。它说的地方
[Software\\Microsoft\\Windows\\CurrentVersion\\RunServices]
"winemenubuilder"="C:\\windows\\system32\\winemenubuilder.exe -a -r"
卸下-a
开关。(默认情况下,WINEPREFIX=$HOME/.wine
。)
这样可以防止Wine窃取您喜欢的mimeapp,但是winemenubuilder仍将运行并为Windoze软件创建方便的桌面条目。
不想让Windows应用程序的安装程序更改文件类型关联,添加菜单项或创建桌面链接的用户可以禁用winemenubuilder.exe
。做这件事有很多种方法:
在winecfg中:运行安装程序之前,请运行winecfg
。转到“库”选项卡,然后winemenubuilder.exe
在“新替代”框中键入(不在下拉列表中)。单击添加,然后从“现有替代”框中选择它。单击“编辑”,然后从列表中选择“禁用”,然后单击“应用”。
注册表文件:如果您需要多次应用设置(例如,每次重新创建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程序打印无法找到的错误(尽管这些错误似乎不会干扰程序操作)。
避免错误的另一种方法是将其替换为“不执行任何操作”程序。在Wine下用MinGW的gcc编译以下代码,并将可执行文件放在C:\Windows\System32\winemenubuilder.exe
:
int main() { /* Do nothing */ return 0; }
然后执行与上述相同的过程,但是将其设置winemenubuilder.exe
为“本机”而不是“禁用”。
/opt/wine-staging/share/wine/wine.inf
。如果文件位于非标准位置,请运行locate wine.inf
以查找它。