Wineがファイルの関連付けを追加するのを防ぐ方法は?


35

Wineは特定のMIMEタイプとファイルの関連付け(.iniファイルの場合はnotepad.exeなど)を自動的に追加します。これらの関連付けを削除する方法を説明する回答が既にあります。

しかし、Wineがそれらを何度も追加するのを防ぐにはどうすればよいでしょうか?

回答:


47

winemenubuilder.exeを完全に無効にすると、wineがファイルの関連付けをハイジャックできなくなりますが、新しくインストールされたソフトウェアのメニューエントリが作成されないため、望ましくない動作になる可能性があります。より良い解決策はこれです:

  1. 既存のワインハイジャックを削除します(ワイン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(ルートとして)編集し、[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起動します)。これにより、新しいユーザーアカウント(または新しいWINEPREFIXes)でファイルの関連付けが更新されなくなります。

  3. $WINEPREFIX/system.regファイルが存在する場合は、同様の方法で編集します。それが言うところ

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

    -aスイッチを取り外します。(デフォルトでは、WINEPREFIX=$HOME/.wine。)

これにより、ワインが好みのmimeappsを盗むのを防ぎますが、winemenubuilderは引き続き実行され、Windozeソフトウェアの便利なデスクトップエントリを作成します。


1
私にとって道はむしろ/opt/wine-staging/share/wine/wine.infでした。ファイルが標準以外の場所にある場合は、実行locate wine.infして見つけます。
ハイエンジェル

13

http://wiki.winehq.org/FAQから:

Windowsアプリのインストーラーでファイルタイプの関連付けを変更したり、メニュー項目を追加したり、デスクトップリンクを作成したりしたくないユーザーは、を無効にできwinemenubuilder.exeます。これを行うにはいくつかの方法があります。

  • winecfg:インストーラーを実行する前に、を実行しwinecfgます。[ライブラリ]タブに移動し、[ winemenubuilder.exe新しいオーバーライド]ボックスに入力します(ドロップダウンリストにはありません)。[追加]をクリックし、[既存のオーバーライド]ボックスから選択します。「編集」をクリックして、リストから「無効化」を選択し、「適用」をクリックします。

  • レジストリファイル:設定を何度も適用する必要がある場合(たとえば、Wineプレフィックスを再作成するたびに)、このアプローチはより便利です。disable-winemenubuilder.reg次を含む拡張子.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「無効」ではなく「ネイティブ」に設定します。


はい。つまり、私にとっては、プレフィックスを作成し、アプリをインストールし、すべてのデフォルトのワインの関連付けとメニューを手動で削除し(アプリの関連付けが必要です)、regキーを変更して、Wineが更新されるたびに関連付けが再追加されないようにします。右?
mniess

4

これはGoogleでの最初のヒットであるためです。Wine FAQには、新しいバージョンのワインの代替方法がリストされています。

「wine-3.14以降、winecfgの[デスクトップ統合]タブに[ファイルの関連付けの管理]チェックボックスがあります。チェックすると、winemenbuilderはファイルの関連付けを作成でき、チェックを外すとその動作が無効になります。」

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.