Come impedire a Wine di aggiungere associazioni di file?


35

Wine aggiunge automaticamente alcuni mimetipi e associazioni di file (ad esempio notepad.exe per i file .ini). Esiste già una risposta che spiega come rimuovere queste associazioni.

Ma come si può impedire a Wine di aggiungerli ancora e ancora?

Risposte:


47

La disabilitazione totale di winemenubuilder.exe impedirà a wine di dirottare le associazioni dei file, ma impedirà anche la creazione di voci di menu per il software appena installato, il che potrebbe essere un comportamento indesiderato. La soluzione migliore è questa:

  1. Rimuovi i dirottamenti del vino esistenti ( dalle domande frequenti sul vino ):

    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. Modifica /usr/share/wine/wine.inf(come root), trova la [Services]sezione:

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

    e modificalo così dice:

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

    (vale a dire, per iniziare winemenubuilder.exesenza l' -ainterruttore). Ciò impedirà l'aggiornamento delle associazioni di file sui nuovi account utente (o con nuovi WINEPREFIXes).

  3. Modifica il tuo $WINEPREFIX/system.regfile (se esiste) in modo simile. Dove dice

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

    rimuovere l' -ainterruttore. (Per impostazione predefinita,. WINEPREFIX=$HOME/.wine)

Ciò impedirà a wine di rubare i tuoi mimeapp preferiti, ma winemenubuilder continuerà a funzionare e creerà voci desktop convenienti per il tuo software Windoze.


1
Per me il percorso era piuttosto /opt/wine-staging/share/wine/wine.inf. Se il file si trova in una posizione non standard, eseguirlo locate wine.infper trovarlo.
Ciao Angelo

13

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

Gli utenti che non desiderano che il programma di installazione di un'app di Windows modifichi le associazioni di tipi di file, aggiungano voci di menu o creino collegamenti desktop, possono disabilitare winemenubuilder.exe. Esistono diversi modi per farlo:

  • In winecfg : prima di eseguire il programma di installazione, eseguire winecfg. Vai alla scheda Librerie e digita winemenubuilder.exenella casella "Nuove sostituzioni" (non si trova nell'elenco a discesa). Fai clic su Aggiungi, quindi selezionalo dalla casella "Sostituzioni esistenti". Fai clic su "Modifica" e seleziona "Disabilita" dall'elenco, quindi fai clic su "Applica".

  • File di registro: se è necessario applicare più volte l'impostazione (ad es. Ogni volta che si ricrea il prefisso Wine), questo approccio potrebbe essere più conveniente. Creare un file di testo denominato con estensione .reg (ad es. disable-winemenubuilder.reg) Contenente quanto segue:

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

    Per applicare l'impostazione, eseguire regedit disable-winemenubuilder.reg

  • Variabile d'ambiente: imposta la variabile d'ambiente WINEDLLOVERRIDES quando esegui il programma di installazione, ad es.

    WINEDLLOVERRIDES=winemenubuilder.exe=d wine setup.exe
    

La disabilitazione winemenubuilder.exefarà sì che i programmi di vino stampino errori che non riescono a trovare (anche se gli errori non sembrano interferire con il funzionamento del programma).


Un approccio alternativo che evita gli errori è di sostituirlo con il programma do-nothing. Compilare quanto segue con gcc di MinGW in wine e posizionare l'eseguibile in C:\Windows\System32\winemenubuilder.exe:

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

Quindi seguire la stessa procedura descritta sopra, ma impostare winemenubuilder.exesu "nativo" anziché su "disabilita".


Va bene. Quindi per me questo significa che creo il prefisso, installo la mia app, rimuovo manualmente tutte le associazioni e i menu di vino predefiniti (voglio le associazioni di app) e quindi cambio il tasto reg per impedire che le associazioni vengano aggiunte nuovamente ogni volta che Wine viene aggiornato, destra?
mniess,

4

Dal momento che questo è il primo successo su Google. Le FAQ sul vino ora elencano un metodo alternativo per le versioni più recenti di vino.

"A partire da wine-3.14, winecfg ha una casella di controllo" Gestisci associazioni di file "nella scheda Integrazione desktop. Il controllo che consente a winemenbuilder di creare associazioni di file e deselezionarlo disattiva tale comportamento."

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.