Bagaimana mencegah Wine menambahkan asosiasi file?

35

Wine secara otomatis menambahkan mimetype dan asosiasi file tertentu (mis. Notepad.exe untuk file .ini). Sudah ada jawaban yang menjelaskan cara menghapus asosiasi ini.

Tapi bagaimana kita bisa mencegah Wine menambahkannya lagi dan lagi?

mniess
sumber

Jawaban:

47

Menonaktifkan winemenubuilder.exe sama sekali akan mencegah anggur membajak asosiasi file Anda, tetapi juga mencegahnya membuat entri menu untuk perangkat lunak yang baru diinstal, yang mungkin merupakan perilaku yang tidak diinginkan. Solusi yang lebih baik adalah ini:

  1. Hapus pembajakan anggur yang ada ( dari FAQ anggur ):

    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. Edit /usr/share/wine/wine.inf(sebagai root), cari [Services]bagian:

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

    dan edit sehingga dikatakan:

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

    (yaitu, untuk memulai winemenubuilder.exetanpa -asaklar). Ini akan mencegah memperbarui asosiasi file pada akun pengguna baru (atau dengan WINEPREFIXes baru ).

  3. Edit $WINEPREFIX/system.regfile Anda (jika ada) dengan cara yang sama. Dimana katanya

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

    lepaskan -asakelar. (Secara default WINEPREFIX=$HOME/.wine,.)

Ini akan mencegah anggur mencuri mimeapps pilihan Anda, tetapi winemenubuilder akan tetap berjalan dan membuat entri desktop yang nyaman untuk perangkat lunak Windoze Anda.

K3 --- rnc
sumber
1
Bagi saya jalannya agak /opt/wine-staging/share/wine/wine.inf. Jika file di lokasi non-standar, jalankan locate wine.infuntuk menemukannya.
Hi-Angel
13

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

Pengguna yang tidak ingin penginstal untuk aplikasi Windows untuk mengubah asosiasi tipe file, menambahkan item menu, atau membuat tautan desktop, dapat menonaktifkan winemenubuilder.exe. Ada beberapa cara untuk melakukan ini:

  • Di winecfg : sebelum menjalankan installer, jalankan winecfg. Buka tab Libraries dan ketik winemenubuilder.exeke dalam kotak "Override baru" (tidak ada dalam daftar dropdown). Klik tambahkan, lalu pilih dari kotak "Override yang ada". Klik "Edit" dan pilih "Nonaktifkan" dari daftar, lalu klik "Terapkan".

  • File registri: Jika Anda perlu menerapkan pengaturan berkali-kali (mis. Setiap kali Anda membuat ulang awalan Wine), pendekatan ini mungkin lebih nyaman. Buat file teks bernama dengan ekstensi .reg (mis., disable-winemenubuilder.reg) Yang berisi yang berikut:

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

    Untuk menerapkan pengaturan, jalankan regedit disable-winemenubuilder.reg

  • Variabel lingkungan: setel variabel lingkungan WINEDLLOVERRIDES ketika Anda menjalankan installer, misalnya,

    WINEDLLOVERRIDES=winemenubuilder.exe=d wine setup.exe
    

Penonaktifan winemenubuilder.exeakan menyebabkan program anggur mencetak kesalahan yang tidak dapat mereka temukan (meskipun kesalahan tersebut tampaknya tidak mengganggu operasi program).


Pendekatan alternatif yang menghindari kesalahan adalah menggantinya dengan program do-nothing. Kompilasi yang berikut ini dengan gcc MinGW di bawah anggur dan tempatkan executable di C:\Windows\System32\winemenubuilder.exe:

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

Kemudian ikuti prosedur yang sama seperti di atas, tetapi atur winemenubuilder.exeke "asli" alih-alih "nonaktifkan".

cscarney
sumber
Baik. Jadi bagi saya itu berarti saya membuat awalan, menginstal aplikasi saya, menghapus semua asosiasi dan menu anggur default dengan tangan (saya ingin asosiasi aplikasi) dan kemudian mengubah kunci reg untuk mencegah asosiasi ditambahkan kembali setiap kali Wine diperbarui, kanan?
mniess
4

Karena ini adalah hit pertama di Google. FAQ Anggur sekarang mencantumkan metode alternatif untuk versi anggur yang lebih baru.

"Dimulai dengan anggur-3.14, winecfg memiliki kotak centang" Kelola File Asosiasi "pada tab Integrasi Desktop. Memeriksa itu memungkinkan winemenbuilder untuk membuat asosiasi file dan menghapus centang itu menonaktifkan perilaku itu."

k0ol
sumber