Mengelola Aplikasi Default

Fitur Atur Akses Program dan Default Komputer (SPAD) ditambahkan ke Windows XP dan versi Windows selanjutnya untuk mengelola default untuk setiap komputer. Selain SPAD, Windows Vista memperkenalkan konsep aplikasi default per pengguna dan item Program Default di Panel Kontrol.

Penting

Topik ini tidak berlaku untuk Windows 10. Cara kerja asosiasi file default berubah di Windows 10. Untuk informasi selengkapnya, lihat bagian tentang perubahan cara Windows 10 menangani aplikasi default di posting ini.

 

Pengaturan default per pengguna khusus untuk akun pengguna individual pada sistem. Jika ada pengaturan default per pengguna, pengaturan tersebut lebih diutamakan daripada default per komputer yang sesuai untuk akun tersebut. Sejak Windows 8, sistem ekstensibilitas untuk jenis file dan default protokol ditetapkan per pengguna, sementara default per komputer diabaikan. SPAD juga mengalami perubahan pada Windows 8 untuk mengatur default per pengguna.

  • Pada sistem yang menjalankan versi Windows yang lebih lawas daripada Windows 8, akun pengguna yang baru dibuat awalnya menerima pengaturan default per komputer hingga pengaturan default per pengguna ditetapkan. Di Windows Vista dan yang lebih baru, pengguna dapat menggunakan item Program Bawaan di Panel Kontrol untuk mengatur atau mengubah default per pengguna mereka. Selain itu, ketika aplikasi dijalankan untuk pertama kalinya, default per pengguna dapat diatur menggunakan panduan pada bagian Eksekusi Pertama Kali Menjalankan Aplikasi dan Default.
  • Pada sistem yang menjalankan Windows 8, akun pengguna yang baru dibuat bergantung pada default per pengguna dari awal dan pengaturan default tersebut pada eksekusi pertama seperti yang dijelaskan di bagian Eksekusi Pertama aplikasi dan Default tidak lagi didukung.

Sebuah aplikasi harus mendaftar dengan SPAD dan fitur Program Default agar dapat diatur sebagai program default di Windows Vista dan versi yang lebih baru.

Topik ini menyediakan vendor perangkat lunak independen (ISV) dengan panduan cepat untuk langkah-langkah yang diperlukan untuk mendaftar dan mengelola default aplikasi di Windows Vista dan yang lebih baru. Tautan disediakan untuk artikel yang lebih mendalam tentang topik setiap bagian.

Program Bawaan di Panel Kontrol

Default Programs adalah fitur yang diperkenalkan di Windows Vista, dapat diakses langsung dari menu Mulai serta Panel Kontrol. Ini menyediakan infrastruktur baru yang berfungsi dengan hak istimewa pengguna standar (tidak ditingkatkan) dan dirancang untuk memungkinkan pengguna dan aplikasi mengelola default per pengguna. Untuk pengguna, Program Default menyediakan cara terpadu dan mudah diakses untuk mengelola pengaturan default, asosiasi file, dan Pemutaran Otomatis di semua aplikasi pada sistem. Untuk aplikasi, menggunakan cakupan per pengguna yang disediakan oleh API Program Default menawarkan keuntungan berikut:

  • Tidak Ada Elevasi

    Aplikasi tidak perlu meningkatkan hak istimewanya untuk mengklaim default.

  • Kewarganegaraan yang Baik

    Pada komputer beberapa pengguna, setiap pengguna dapat memilih aplikasi default yang berbeda.

  • Manajemen Default

    API Program Default menawarkan mekanisme yang andal dan konsisten untuk memeriksa status default sendiri dan mengklaim kembali pengaturan yang hilang tanpa menggunakan penulisan langsung ke registri. Namun, pada Windows 8, kami tidak menyarankan agar aplikasi meminta status default karena aplikasi tidak dapat lagi mengubah pengaturan default—perubahan tersebut hanya dapat dilakukan oleh pengguna.

Untuk mengaktifkan aplikasi Anda mengelola default secara efektif, Anda harus mendaftarkan aplikasi Anda sebagai program default potensial. Untuk informasi lebih lanjut tentang cara mendaftar dan menggunakan API Program Bawaan, lihat Program Default.

Program Default juga menyediakan dua fitur ini:

  • UI Pengaturan Bawaan yang Dapat Digunakan Kembali

    UI dari default program (Mengatur program default Anda) dan asosiasi file (Mengaitkan jenis file atau protokol dengan program) dapat digunakan kembali dan dipanggil dari dalam aplikasi. Ini memungkinkan aplikasi untuk memberikan pengalaman pengguna standar untuk mengelola pengaturan default dan membebaskan ISV dari keharusan mengembangkan UI khusus atau setara.

  • Penyertaan URL dan Informasi Pemasaran

    Sebagai bagian dari halaman Atur program default Anda pada item Program Default di Panel Kontrol, aplikasi dapat menyertakan informasi pemasaran dan tautan ke situs web vendor. URL ini berasal dari sertifikat Authenticode yang telah ditandatangani aplikasi. Ini mencegah penyalahgunaan dan penggantian tautan ini yang tidak sah. Jika aplikasi memiliki sertifikat Authenticode yang menyertakan URL yang disematkan, UI Windows menampilkan URL yang disematkan. ISV harus memanfaatkan fitur ini untuk mengarahkan pengguna ke situs web mereka untuk pembaruan dan unduhan lainnya.

Atur Akses Program dan Default Komputer

Mengatur Akses Program dan Default Komputer (SPAD) memungkinkan administrator mengelola default di seluruh komputer yang diwariskan oleh semua pengguna baru komputer tersebut. Sebelum Windows 8, SPAD juga mengaktifkan administrator untuk memperbaiki asosiasi file jika mereka menjadi rusak ketika program dihapus dari sistem. Namun, pada Windows 8, SPAD hanya memengaruhi default khusus pengguna.

Untuk informasi lebih lanjut tentang mendaftarkan aplikasi di SPAD, lihat Bekerja dengan Mengatur Akses Program dan Default Komputer (SPAD) dan Mendaftarkan Program dengan Jenis Klien. Perubahan spesifik dan rekomendasi baru dibahas di bagian berikut.

Pengaturan Standar di SPAD

Pengaturan default per pengguna menggantikan pengaturan default per komputer.

  • Sebelum Windows 8: Default yang diatur dalam SPAD (yang per komputer) tidak akan dilihat oleh pengguna jika default per pengguna yang sesuai diatur. Jika pengguna belum mengatur default per pengguna, sistem menggunakan default komputer yang sesuai. Akun pengguna baru pada komputer awalnya mewarisi default komputer. Pertama kali pengguna menjalankan aplikasi, aplikasi harus meminta pengguna untuk menetapkan default per pengguna mereka. Lihat Eksekusi Pertama Aplikasi dan Default.
  • Pada Windows 8: Semua pengaturan bawaan bersifat per pengguna dan pengaturan bawaan komputer diabaikan. Aplikasi tidak dapat lagi mengatur pilihan default, sehingga mereka tidak dapat memandu pengguna dalam menetapkan default tersebut.

Saat aplikasi pra-Windows 8 menerapkan Tetapkan sebagai Default di SPAD, panduan ini harus diikuti:

  • Aplikasi hanya boleh mengklaim default tingkat komputer melalui SPAD.
  • Aplikasi harus tidak klaim default per pengguna melalui SPAD.

Ketika aplikasi Windows 8 mengimplementasikan Setel sebagai Default di SPAD, harus mendaftarkan jenis file dan protokol di Program Default, menggunakan nama aplikasi yang sama yang digunakan di SPAD. Ini memungkinkan perubahan di SPAD untuk tercermin sebagai perubahan pada entri Program Default yang cocok bagi pengguna saat ini.

Sembunyikan Akses di SPAD

Opsi sembunyikan akses untuk setiap kemungkinan default di SPAD diakses dengan salah satu dari dua cara:

  • Pilih kategori default Non-Microsoft, yang menghapus akses ke semua default Microsoft.
  • Pilih kategori Kustom dan kosongkan kotak centang Aktifkan akses ke program ini.

Sebelumnya, mengambil salah satu tindakan tersebut menghapus semua titik masuk ke aplikasi yang sesuai pada sistem. Panduan khusus untuk situasi ini mengatakan untuk menghapus pintasan dan ikon dari lokasi berikut:

  • Desktop
  • Menu mulai
  • Bilah Luncur Cepat (hanya Windows Vista dan versi sebelumnya)
  • Area pemberitahuan
  • Menu pintasan
  • Bilah tugas folder

Vendor didorong untuk menerapkan panduan ini dalam fungsi callback Sembunyikan Akses pada aplikasi.

Menyembunyikan Metode Akses Alternatif di SPAD

Untuk beberapa aplikasi warisan, implementasi penuh Hide Access mungkin tidak praktis. Metode alternatif yang mencapai efek yang sama, tetapi tidak mudah dibalik oleh pengguna, adalah menghapus instalan aplikasi. Berikut ini menunjukkan perilaku sampel dan contoh kode untuk menerapkan ini.

Pengalaman pengguna yang direkomendasikan untuk alternatif ini adalah sebagai berikut:

  • Ketika pengguna menghapus kotak Aktifkan akses ke program ini di SPAD, UI berikut disajikan.

    kotak dialog vista tentang menyembunyikan akses ke program

  • Ketika pengguna mengklik OK, item Program dan Fitur di Panel Kontrol ditampilkan sehingga pengguna dapat menghapus instalan aplikasi.

  • Pengguna Windows XP harus disajikan dengan kotak dialog berikut.

    kotak dialog windows xp tentang menyembunyikan akses ke program

  • Ketika pengguna Windows XP mengklik OK, item Tambahkan atau Hapus Program di Panel Kontrol ditampilkan sehingga pengguna dapat menghapus instalan aplikasi.

Kode berikut menyediakan implementasi yang dapat digunakan kembali untuk fitur Sembunyikan Akses seperti yang diuraikan sebelumnya. Ini dapat digunakan pada Windows XP, Windows Vista, dan Windows 7.

#include <windows.h>
#include <shlwapi.h>
#include <strsafe.h>

PCWSTR c_pszMessage1 = L"To hide access to this program, you need to uninstall it by ";
PCWSTR c_pszMessage2 = L"using\n%s in Control Panel.\n\nWould you like to start %s?";
PCWSTR c_pszApplicationName  = L"Sample App";

int _tmain(int argc, WCHAR* argv[])
{
    OSVERSIONINFO version;
    version.dwOSVersionInfoSize = sizeof(version);

    if (GetVersionEx(&version))
    {
        PCWSTR pszCPLName = NULL;

        if (version.dwMajorVersion >= 6)
        {
            // Windows Vista and later
            pszCPLName = L"Programs and Features";
        }
        else if (version.dwMajorVersion == 5 &&
                 version.dwMinorVersion == 1)
        {
            // XP
            pszCPLName = L"Add/Remove Programs";
        }

        if (pszCPLName != NULL)
        {
            WCHAR szMessage[256], szScratch[256];
            if (SUCCEEDED(StringCchPrintf(szScratch, 
                                          ARRAYSIZE(szScratch), 
                                          c_pszMessage2, 
                                          pszCPLName, 
                                          pszCPLName)))
            {
                if (SUCCEEDED(StringCchCopy(szMessage, 
                                            ARRAYSIZE(szMessage), 
                                            c_pszMessage1)))
                {
                    if (SUCCEEDED(StringCchCat(szMessage, 
                                               ARRAYSIZE(szMessage), 
                                               szScratch)))
                    {
                        if (IDOK == MessageBox(NULL, 
                                               szMessage, 
                                               c_pszApplicationName, 
                                               MB_OKCANCEL))
                        {
                            ShellExecute(NULL, 
                                         NULL, 
                                         L"appwiz.cpl", 
                                         NULL, 
                                         NULL, 
                                         SW_SHOWNORMAL);
                        }
                    }
                }
            }
        }
    }
    return 0;
}

Mendaftar untuk Titik Masuk ke Aplikasi

Aplikasi dapat memiliki banyak titik masuk dalam sistem operasi. Berikut ini adalah lokasi yang direkomendasikan untuk titik masuk:

  • Layar Utama
  • Menu mulai
  • Bilah Luncur Cepat (Windows Vista dan yang lebih lama saja)
  • Area pemberitahuan
  • Menu pintasan
  • Pita tugas direktori

Bagian ini berfokus pada area tertentu ini:

Buka Dengan

Menu pintasan Buka Dengan memungkinkan pengguna memilih aplikasi yang dapat menangani jenis file tertentu. Meskipun Buka Dengan dapat digunakan untuk membuka file dengan aplikasi satu kali, itu juga dapat digunakan untuk mengatur default untuk ekstensi nama file tersebut. Oleh karena itu, aplikasi harus selalu mendaftar untuk Buka Dengan sehingga pengguna ditampilkan dengan aplikasi tersebut sebagai pilihan. Aplikasi dapat mendaftarkan tipe file dan protokol untuk Buka Dengan. Aplikasi yang mendaftarkan protokol dalam kerangka Program Default secara otomatis masuk dalam opsi Buka Dengan untuk protokol.

Untuk informasi mengenai registrasi Buka Dengan, lihat Pengenalan Asosiasi File.

Menu Mulai dan Bilah Luncur Cepat

Untuk menjadi lebih dapat ditemukan oleh pengguna, aplikasi dapat menambahkan pintasan ke berbagai lokasi di Windows. Tempat yang paling umum untuk menambahkan pintasan adalah menu Mulai. Di Windows Vista dan yang lebih baru, aplikasi membuat pintasan di folder tersembunyi %ProgramData%\Microsoft\Windows\Start Menu\Programs agar muncul dalam daftar program di menu Mulai untuk semua pengguna. Umumnya, aplikasi menambahkan subfolder yang berisi pintasan.

Untuk browser dan program email, menu Windows Vista Start juga menyajikan dua tautan khusus di luar daftar program, secara kanonis berjudul Internet dan E-mail. Setelah aplikasi mendaftar untuk kategori tersebut, kerangka kerja Program Default dapat mengelola apa yang diluncurkan melalui tautan tersebut.

Nota

Internet dan E-mail tautan menu Mulai khusus tidak lagi ada pada Windows 7.

 

Untuk meningkatkan kemudahan ditemukan, aplikasi juga dapat menambahkan pintasan ke desktop dan bilah Peluncuran Cepat. Aplikasi harus meminta izin kepada pengguna (biasanya selama penginstalan atau saat pertama kali dijalankan) sebelum menambahkan ikon ke menu Mulai, desktop, atau bilah Luncur Cepat.

Nota

Bilah Luncur Cepat tidak lagi tersedia pada Windows 7. Alternatif Windows 7 adalah agar aplikasi disematkan ke Taskbar, tetapi penyematan tidak dapat dilakukan secara terprogram karena ini benar-benar pilihan pengguna.

 

Untuk informasi selengkapnya, lihat topik-topik ini:

Penginstalan Aplikasi dan Pengaturan Baku

Prosedur penginstalan aplikasi tidak berubah secara mendasar sejak Windows XP, dengan pengecualian pedoman baru untuk sistem yang menjalankan versi Windows yang lebih lama dari Windows 8: mengambil default per komputer pada waktu penginstalan tetapi tidak mengatur default per pengguna apa pun sampai pengguna tersebut pertama kali menjalankan aplikasi. (Lihat Eksekusi Pertama Aplikasi dan Default.) Aplikasi tidak boleh mengatur default per pengguna selama penginstalan karena ada situasi di mana orang yang menginstal aplikasi bukan pengguna yang dimaksudkan. Pada Windows 8, default per komputer tidak didukung dan aplikasi tidak dapat mengubah pengaturan default per pengguna.

Selama penginstalan, aplikasi harus menyalin binernya ke hard disk dan menulis ProgID-nya ke registri. Aplikasi juga harus mendaftar untuk Program Default dan Buka Dengan pada tahap ini untuk setiap asosiasi file yang merupakan kandidat untuk ditangani. Aplikasi ini dapat menggunakan subkunci OpenWithProgIds untuk mendaftarkan dengan Open With.

Untuk informasi selengkapnya, lihat topik-topik ini:

Pembaruan dan Pengaturan Baku Aplikasi

Banyak aplikasi memiliki kemampuan untuk meningkatkan diri dari waktu ke waktu. Prosedur peningkatan ini tidak boleh mengubah status default per pengguna karena perubahan tersebut tidak akan terduga kepada pengguna. Namun, aplikasi dapat diterima untuk memeriksa asosiasi file tingkat komputer dan memperbaikinya jika telah rusak.

Pengoperasian Pertama dan Pengaturan Awal Aplikasi

Nota

Pada Windows 8, sistem menangani prosedur ini atas nama semua aplikasi. Aplikasi itu sendiri tidak dapat lagi mengkueri dan mengubah default. Hanya pengguna yang dapat melakukannya. Oleh karena itu, aplikasi tidak boleh mencoba mengkueri default saat ini atau mengubah default tersebut melalui mekanisme apa pun. Namun, aplikasi dapat menyediakan titik masuk ke Program Default di Panel Kontrol dengan memanggil metode LaunchAdvancedAssociationUI antarmuka IApplicationAssociationRegistrationUI.

 

Dengan diperkenalkannya default per pengguna di Windows Vista, penting bahwa aplikasi yang memperebutkan ekstensi nama file populer semuanya memberikan pengalaman pengguna umum untuk mengklaim ekstensi ini. Karena default ini sekarang diatur dalam konteks pengguna, mereka harus menyajikan diri mereka sebagai kemungkinan default hanya ketika pengguna menjalankan program setelah penginstalan.

Pedoman untuk membuat default per pengguna adalah ini: Ketika aplikasi pertama kali dijalankan untuk pengguna tertentu, aplikasi tersebut harus meminta preferensi pengguna untuk default dan asosiasi file untuk dirinya sendiri.

UI yang direkomendasikan harus memberikan dua pilihan yang jelas kepada pengguna:

  1. Terima semua default yang ingin diklaim aplikasi. Opsi ini mungkin juga mengatur properti default aplikasi lainnya seperti privasi atau pengaturan pembaruan otomatis. Opsi ini memungkinkan aplikasi untuk mengklaim semua default terdaftarnya.
  2. Sesuaikan dengan menerima atau tidak menerima pilihan default dan pengaturan program satu per satu. Opsi ini menyajikan UI lebih lanjut yang memungkinkan pengguna membuat pilihan terperinci untuk opsi default mereka.

Untuk informasi selengkapnya, lihat Program Bawaan.

Nota

Ini tidak didukung pada Windows 8.

 

Setelah aplikasi mendaftar dengan Program Default di Windows Vista dan yang lebih baru, API tertentu tersedia untuk aplikasi. Misalnya, aplikasi mungkin perlu memeriksa apakah itu program default. Antarmuka IApplicationAssociationRegistration menyediakan metode untuk melakukan ini.

Aplikasi apa pun yang ingin mengklaim default harus terlebih dahulu meminta pengguna dan tidak pernah mengklaim default tanpa izin. Pengguna harus ditanya apakah mereka ingin menjadikan aplikasi sebagai default atau membiarkan default saat ini diberlakukan. Juga harus ada opsi untuk tidak diajukan pertanyaan ini lagi setelah pengguna membuat pilihan mereka.

Untuk informasi selengkapnya, lihat Program Bawaan.

Tips Kompatibilitas Aplikasi

Bagian ini menyediakan beberapa tips kompatibilitas aplikasi yang terkait dengan pengalaman Program Default di Windows.

Hindari Memicu Virtualisasi Per-User

Dengan lingkungan kontrol akun pengguna (UAC), aplikasi harus selalu berjalan hanya dengan hak pengguna standar untuk pengalaman pelanggan terbaik. Untuk alasan keamanan, aplikasi dengan tingkat hak istimewa pengguna standar diblokir agar tidak menulis ke bagian tertentu dari registri dan ke file sistem tertentu. Windows Vista dan versi Windows yang lebih baru menyediakan lapisan kompatibilitas aplikasi sementara (AppCompat) untuk membantu aplikasi melakukan transisi. Upaya yang diblokir untuk menulis ke registri atau ke file sistem "divirtualisasi" sehingga aplikasi terus berjalan, tetapi area sensitif sistem tidak diubah. Namun, aplikasi tidak boleh mengandalkan teknologi AppCompat sebagai solusi jangka panjang. Sebagai gantinya, aplikasi harus menggunakan banyak alat yang tersedia untuk memverifikasi bahwa mereka dapat berjalan dengan sukses di bawah hak pengguna standar. Beberapa pemrograman ulang aplikasi mungkin diperlukan untuk mencapai hal ini, tetapi harus dilakukan untuk kepentingan kompatibilitas jangka panjang.

Hindari Peringatan AppCompat atau Pemblokiran oleh Asisten Kompatibilitas Program

Asisten Kompatibilitas Program (PCA) disediakan di Windows Vista dan yang lebih baru. Tujuannya adalah untuk menyediakan metode otomatis untuk membuat program yang lebih lama dengan masalah kompatibilitas bekerja lebih baik. PCA memantau program-program yang memiliki masalah yang diketahui. Jika masalah terdeteksi, masalah akan memberi tahu pengguna tentang masalah tersebut dan menawarkan untuk menerapkan solusi yang efektif sebelum pengguna menjalankan program lagi. Untuk menghindari melihat peringatan atau blok ini, ISV harus menggunakan banyak alat yang tersedia untuk memastikan bahwa aplikasi mereka kompatibel dengan Windows Vista, Windows 7, dan yang lebih baru.

Dukungan untuk Versi Sistem Operasi Windows Sebelumnya

Infrastruktur Program Default tidak tersedia pada sistem operasi Windows sebelum Windows Vista. Oleh karena itu, ketika aplikasi pindah ke infrastruktur Program Default baru, mereka harus mempertahankan kode default aplikasi yang lebih lama untuk mempertahankan kompatibilitas dengan versi Windows yang lebih lama. Aplikasi harus menjalankan pemeriksaan versi sistem operasi sebagai bagian dari penginstalannya untuk menentukan kode default aplikasi mana yang akan dijalankan.

Untuk mendukung peningkatan dari Windows XP ke Windows Vista atau yang lebih baru, aplikasi harus menambahkan semua entri registri yang diperlukan untuk Program Default bahkan ketika mereka menginstal pada komputer yang menjalankan Windows XP. Pendaftaran tidak akan berpengaruh pada komputer yang menjalankan Windows XP, tetapi jika komputer nanti ditingkatkan, aplikasi akan sudah terdaftar dan dapat memanfaatkan kerangka kerja.

Untuk informasi selengkapnya, lihat OSVERSIONINFO.

Sumber Daya Tambahan

Praktik Terbaik untuk Asosiasi File

Skenario Sampel Asosiasi File

Program Default

Bekerja dengan Mengatur Akses Program dan Pengaturan Default Komputer (SPAD)