Bagikan melalui


Mendukung menu konteks warisan untuk aplikasi paket

Menu konteks adalah salah satu ekstensi shell yang paling populer dan berguna. Jika Anda sudah berada di File Explorer atau di Desktop, itu secara signifikan mengurangi jumlah langkah untuk menyelesaikan operasi file dibandingkan dengan membuka aplikasi terpisah.

Jika aplikasi desktop Anda mengimplementasikan antarmuka IContextMenu warisan untuk ekstensi shell seperti penangan menu konteks atau penangan seret dan letakkan, ekstensi shell mungkin tidak berfungsi setelah Anda mengemas aplikasi Anda. Agar shell mengenali dan mendaftarkan ekstensi, Anda harus memodifikasi file manifes paket. (Fitur ini tersedia di Windows 11 build 22000+, yang saat ini tersedia melalui Build Windows Insider )

  • Menambahkan namespace layanan com dan ekstensi windows.comServer untuk dll shellex Anda

    xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"

    Di bawah ini adalah contoh cuplikan kode:

    <com:Extension Category="windows.comServer">
        <com:ComServer>
            <com:SurrogateServer DisplayName="<display-name-for-the-com-server>">
                <com:Class Id="<GUID-for-the-com-server>" Path="<path-to-the-com-server-or-dll>" ThreadingModel="STA" />
            </com:SurrogateServer>
        </com:ComServer>
    </com:Extension>
    
  • Tambahkan namespace desktop9 dan ekstensi windows.fileExplorerClassicContextMenuHandler atau windows.fileExplorerClassicDragDropContextMenuHandler

    xmlns:desktop9="http://schemas.microsoft.com/appx/manifest/desktop/windows10/9"

    Di bawah ini adalah contoh cuplikan kode:

    <desktop9:Extension Category="windows.fileExplorerClassicContextMenuHandler">
        <desktop9:FileExplorerClassicContextMenuHandler>
            <desktop9:ExtensionHandler Type="*" Clsid="<GUID-for-the-com-server>" />
            <desktop9:ExtensionHandler Type=".txt" Clsid="<GUID-for-the-com-server>" />
            <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" />
        </desktop9:FileExplorerClassicContextMenuHandler>
    </desktop9:Extension>
    
    <desktop9:Extension Category="windows.fileExplorerClassicDragDropContextMenuHandler">
        <desktop9:FileExplorerClassicDragDropContextMenuHandler>
            <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" />
            <desktop9:ExtensionHandler Type="Drive" Clsid="<GUID-for-the-com-server>" />
        </desktop9:FileExplorerClassicDragDropContextMenuHandler>
    </desktop9:Extension>
    
  • Ubah MaxVersionTested menjadi lebih besar dari 10.0.21300.0

    Di bawah ini adalah contoh cuplikan kode:

    <Dependencies>
        <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.21301.0" />
    </Dependencies>
    

Catatan

Jika Anda menerapkan ekstensi shell alih-alih mengemas aplikasi desktop yang ada dengan implementasi IContextMenu warisan, sebaiknya terapkan antarmuka IExplorerCommand dan gunakan desktop4:FileExplorerContextMenus sebagai gantinya. Lihat di sini untuk informasi selengkapnya.