Bisakah saya mencegah perubahan ikon overlay?

16

Latar Belakang

Beberapa program memodifikasi ikon di explorere untuk menunjukkan keadaan ("disinkronkan" Hamparan sinkronisasi TortoiseCVSdll.)

Ini adalah fakta yang diketahui, bahwa Windows (win7, win8, win10?) Hanya dapat menangani sejumlah ikon yang terbatas (~ 15) dan ada beberapa pertanyaan terkait (fe di sini ).

Ikon overlay ini terdaftar di registri di cabang:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

Lokasi ikon overlay shell dalam registri

Hanya beberapa entri pertama (15?) Yang benar-benar digunakan, yang lainnya diabaikan. Akibatnya, memiliki beberapa program menginstal ikon overlay mereka sendiri dapat merusak perilaku program yang sudah diinstal.

Untuk memperbaikinya, seseorang biasanya harus masuk ke dalam registri dan menghapus (atau mengganti nama) entri yang tidak diinginkan sampai yang diinginkan berada di atas.

Masalah

Baru-baru ini, saya memperhatikan perilaku yang semakin 'agresif' dari beberapa program yang memperjuangkan posisi teratas ini. Ini paling sering dilakukan dengan memiliki nama-nama kunci yang dimulai dengan karakter spasi-putih untuk menegakkan penyortiran teratas. Dropbox , GoogleDrive , SkyDrive dan OneDrive adalah contohnya semua yang melakukan ini. Beberapa, seperti GoogleDrive bahkan menggunakan tiga ruang putih saat ini, tetapi program lain semakin setara ...

Yang lebih buruk, beberapa program bahkan memperbaiki pengaturan ini secara otomatis selama setiap 'pembaruan' otomatis (atau bahkan pembaruan-periksa atau peluncuran program?). Jadi penyesuaian manual apa pun secara teratur dibatalkan. Saya perhatikan ini setidaknya untuk GoogleDrive , Dropbox , dan OneDrive

Pertanyaan

Apakah ada cara untuk 'melindungi' registri dari perubahan otomatis semacam itu?

Edit (Jawab)

Alexey Ivanov telah memberikan saran yang bagus dalam komentar di bawah ini, dan sejauh ini "mencabut hak istimewa registri" telah menekan masalah bagi saya.

BmyGuest
sumber
2
Saya telah membuat perubahan yang cukup besar pada posting Anda - masalahnya adalah, jika Anda meminta file batch, itu di luar topik karena kami bukan layanan penulisan skrip. Plus, batch mungkin atau mungkin bukan cara terbaik. Dengan menjaga ini tetap sederhana, ini akan (semoga) memungkinkan berbagai jenis jawaban. Jangan ragu untuk mengembalikan perubahan saya jika terlalu besar, tetapi menerimanya mungkin dianggap sebagai topik yang tidak biasa pada saat itu.
Dave
@ Dave: OK, tidak tahu bahwa file batch di luar batas situs ini karena saya telah melihat banyak dari mereka dalam jawaban. Saya hanya berpikir file batch mungkin menjadi solusi "satu-satunya" di sini, tapi sungguh, saya mencari solusi dengan cara apa pun dan hasil edit Anda baik-baik saja dengan saya. Jika Anda berpikir ini meningkatkan penerimaan posting, daripada terima kasih banyak.
BmyGuest
Oh, meminta bantuan dengan file batch Anda saat ini tidak masalah (dan Anda harus membagikan kode). Tetapi meminta kami untuk menulis satu untuk Anda bukan :)
Dave
1
Saya sangat suka jawaban untuk ini. Dropbox benar-benar menjengkelkan dengan selalu mengganti ikon TortoiseSVN di setiap pembaruan. Saya membuat skrip yang memperbaiki itu dan me-restart Windows Explorer, tetapi menemukan pertanyaan ini ketika mencoba menemukan cara untuk menghindari keharusan melakukan itu ...
Nuno
2
Hal pertama yang muncul di benak saya adalah mencabut hak istimewa menulis dari kunci registri itu. Maka tidak ada program yang dapat memodifikasi entri registri. Untuk memungkinkan aplikasi mendaftarkan ikon overlaynya, Anda perlu mengedit izin pada tombol sekali lagi untuk menambahkan hak menulis.
Alexey Ivanov

Jawaban:

13

Apa yang saya lakukan, karena Dropbox benar-benar menjengkelkan, adalah saya membuat file ".reg" yang menghapus semua entri Dropbox itu:

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt01]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt02]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt03]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt04]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt05]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt06]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt07]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt08]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt09]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt10]

Lalu, saya menjalankan file ".cmd" yang mengeksekusinya dan me-restart Windows Explorer:

regedit -s FixDropboxTortoiseSVNConflict.reg

taskkill /f /im explorer.exe

start explorer.exe

Dan TortoiseSVN menunjukkan ikon overlay lagi.

Bukan cara terindah dalam melakukan sesuatu, dan mungkin perlu mengubah kunci registri di atas ketika Dropbox mengubahnya lagi di masa mendatang, tetapi menghapus beberapa pekerjaan manual untuk masuk ke registri dan mengganti nama / menghapusnya, satu per satu :)

Nuno
sumber
Hebat, persis apa yang saya cari, terima kasih! Menggunakan start explorer.exedalam file cmd membuat explorer sebagai proses latar belakang sehingga jendela shell tidak tetap terbuka setelah selesai.
Shlublu
1
Jika Anda menerapkan overlays.regfile .cmddengan regedit -s overlays.regAnda, Anda dapat memperbaiki semuanya dalam satu tindakan. Anda juga dapat menghapus seluruh HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifierskunci dan menambahkan kembali yang diperlukan jika OneDrive dan Dropbox terus menambahkan spasi ke tombol.
Dave Anderson