Wie verhindere ich, dass Wine Dateizuordnungen hinzufügt?

35

Wine fügt automatisch bestimmte Mimetypen und Dateizuordnungen hinzu (z. B. notepad.exe für INI-Dateien). Es gibt bereits eine Antwort , die erklärt, wie diese Assoziationen entfernt werden können.

Aber wie kann man verhindern, dass Wine sie immer wieder hinzufügt?

Frau
quelle

Antworten:

47

Das Deaktivieren von winemenubuilder.exe verhindert, dass Wine Ihre Dateizuordnungen missbraucht, verhindert jedoch auch, dass Menüeinträge für neu installierte Software erstellt werden, was möglicherweise ein unerwünschtes Verhalten ist. Die bessere Lösung ist:

  1. Entfernen Sie vorhandene Wine-Hijacks ( aus den häufig gestellten Fragen zu Weinen ):

    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. Bearbeiten /usr/share/wine/wine.inf(als root), finden Sie den [Services]Abschnitt:

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

    und bearbeite es so, dass es sagt:

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

    (nämlich winemenubuilder.exeohne den -aSchalter zu starten ). Dies verhindert, dass Dateizuordnungen für neue Benutzerkonten (oder mit neuen WINEPREFIX) aktualisiert werden .

  3. Bearbeiten Sie Ihre $WINEPREFIX/system.regDatei (falls vorhanden) auf ähnliche Weise. Wo steht

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

    Den -aSchalter entfernen . (Standardmäßig WINEPREFIX=$HOME/.wine.)

Dadurch wird verhindert, dass Wein Ihre bevorzugten Mimeapps stiehlt. Der winemenubuilder wird jedoch weiterhin ausgeführt und erstellt bequeme Desktop-Einträge für Ihre Windoze-Software.

K3 --- rnc
quelle
1
Für mich war der Weg eher /opt/wine-staging/share/wine/wine.inf. Wenn sich die Datei an einem nicht standardmäßigen Speicherort befindet, führen Sie sie aus locate wine.inf, um sie zu finden.
Hi-Angel
13

Von http://wiki.winehq.org/FAQ :

Benutzer, die nicht möchten, dass das Installationsprogramm für eine Windows-App Dateitypzuordnungen ändert, Menüelemente hinzufügt oder Desktop-Links erstellt, können deaktivieren winemenubuilder.exe. Hierfür gibt es verschiedene Möglichkeiten:

  • In winecfg : Führen Sie vor dem Ausführen des Installationsprogramms Folgendes aus winecfg. Gehen Sie zur Registerkarte Bibliotheken und geben Sie winemenubuilder.exein das Feld "Neue Überschreibungen" ein (es befindet sich nicht in der Dropdown-Liste). Klicken Sie auf Hinzufügen und wählen Sie es im Feld "Vorhandene Überschreibungen" aus. Klicken Sie auf "Bearbeiten" und wählen Sie "Deaktivieren" aus der Liste aus. Klicken Sie dann auf "Übernehmen".

  • Registrierungsdatei: Wenn Sie die Einstellung mehrmals anwenden müssen (z. B. jedes Mal, wenn Sie das Wine-Präfix neu erstellen), ist dieser Ansatz möglicherweise praktischer. Erstellen Sie eine Textdatei mit der Erweiterung .reg (z. B. disable-winemenubuilder.reg), die Folgendes enthält:

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

    Führen Sie aus, um die Einstellung anzuwenden regedit disable-winemenubuilder.reg

  • Umgebungsvariable: Legen Sie die Umgebungsvariable WINEDLLOVERRIDES fest, wenn Sie das Installationsprogramm ausführen, z.

    WINEDLLOVERRIDES=winemenubuilder.exe=d wine setup.exe
    

Das Deaktivieren winemenubuilder.exeführt dazu, dass Wine-Programme Fehler ausgeben , die sie nicht finden können (obwohl die Fehler den Programmbetrieb nicht zu beeinträchtigen scheinen).


Ein alternativer Ansatz, der die Fehler vermeidet, besteht darin, ihn durch das Nichtstun-Programm zu ersetzen. Kompiliere folgendes mit MinGW's gcc unter wine und platziere die ausführbare Datei unter C:\Windows\System32\winemenubuilder.exe:

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

Gehen Sie dann wie oben beschrieben vor, stellen Sie jedoch winemenubuilder.exe"native" anstelle von "disable" ein.

cscarney
quelle
Okay. Für mich bedeutet das, dass ich das Präfix erstelle, meine App installiere, alle Standardweinzuordnungen und -menüs von Hand entferne (ich möchte die Apps-Zuordnungen) und dann den Registrierungsschlüssel ändere, um zu verhindern, dass die Zuordnungen jedes Mal neu hinzugefügt werden, wenn Wine aktualisiert wird. Recht?
Dienstag,
4

Da dies der erste Hit bei Google ist. Die Wein-FAQ listet jetzt eine alternative Methode für neuere Versionen von Wein auf.

"Ab wine-3.14 verfügt winecfg über ein Kontrollkästchen" Dateizuordnungen verwalten "auf der Registerkarte" Desktop-Integration ". Durch Aktivieren dieses Kontrollkästchens kann winemenbuilder Dateizuordnungen erstellen und durch Deaktivieren dieses Verhaltens deaktivieren."

k0ol
quelle