Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La paleta de comandos proporciona un modelo de extensión completo, lo que permite a los desarrolladores crear sus propias experiencias para la paleta.
La forma más rápida de empezar a escribir extensiones es desde la propia paleta de comandos. Simplemente ejecute el comando "Crear una nueva extensión", rellene los campos para rellenar el proyecto de plantilla y debe estar listo para iniciarse.
Para obtener instrucciones más detalladas, puede seguir estas páginas:
- Creación de una extensión
- Adición de comandos
- Actualizar una lista de comandos
- Adición de comandos de nivel superior a la extensión
- Resultados del comando
- Mostrar contenido de Markdown
- Obtención de información del usuario con formularios
Detalles de la extensión
La paleta de comandos define una API de WinRT (Microsoft.CommandPalette.Extensions), que es cómo las extensiones pueden comunicarse con la paleta de comandos.
La paleta de comandos usará el catálogo de paquetes para encontrar aplicaciones que se enumeran como windows.appExtension
para com.microsoft.commandpalette
.
Registro de la extensión
Las extensiones pueden registrarse en la Paleta de Comandos mediante su .appxmanifest
. Por ejemplo:
<Extensions>
<com:Extension Category="windows.comServer">
<com:ComServer>
<com:ExeServer Executable="ExtensionName.exe" Arguments="-RegisterProcessAsComServer" DisplayName="Sample Extension">
<com:Class Id="<Extension CLSID Here>" DisplayName="Sample Extension" />
</com:ExeServer>
</com:ComServer>
</com:Extension>
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension Name="com.microsoft.commandpalette"
Id="YourApplicationUniqueId"
PublicFolder="Public"
DisplayName="Sample Extension"
Description="Sample Extension for Command Palette">
<uap3:Properties>
<CmdPalProvider>
<Activation>
<CreateInstance ClassId="<Extension CLSID Here>" />
</Activation>
<SupportedInterfaces>
<Commands />
</SupportedInterfaces>
</CmdPalProvider>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
En este manifiesto, usamos un servidor COM fuera de proceso para actuar como la capa de comunicación entre la aplicación y la paleta de comandos. ¡No te preocupes por esto! El proyecto de plantilla se encargará de crear un servidor COM para ti, iniciarlo y llevar tus objetos a la paleta de comandos.
Notas importantes
Algunos elementos importantes sobre el ejemplo de manifiesto:
- La aplicación debe especificar un
Extensions.uap3Extension.AppExtension
con el Nombre establecido encom.microsoft.commandpalette
. Este es el identificador único que usa la paleta de comandos para encontrar sus extensiones. - La aplicación debe especificar un
Extensions.comExtension.ComServer
para hospedar su clase COM. Esto permite que el sistema operativo registre ese GUID como una clase COM que podemos instanciar.- Asegúrese de que este CLSID es único y coincide con el de la aplicación. Al cambiar uno, se deben cambiar los tres.
- En el
Properties
de suAppExtension
, se debe especificar un elementoCmdPalProvider
. Aquí es donde se especifica el CLSID de la clase COM para el que la paleta de comandos creará una instancia para interactuar con su extensión.- Actualmente, solo se admite
Commands
.
- Actualmente, solo se admite