Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Paleta de Comandos fornece um modelo de extensão completo, permitindo que os desenvolvedores criem suas próprias experiências para a paleta.
A maneira mais rápida de começar a escrever extensões é da própria Paleta de Comandos. Basta executar o comando "Criar uma nova extensão", preencher os campos para preencher o projeto de modelo e você deve estar pronto para começar.
Para obter instruções mais detalhadas, você pode seguir estas páginas:
- Criando uma extensão
- Adicionando comandos
- Atualizar uma lista de comandos
- Adicionar comandos de nível superior à sua extensão
- Resultados do comando
- Exibir conteúdo de markdown
- Obter entrada do usuário com formulários
Detalhes da extensão
A Paleta de Comandos define uma API WinRT (Microsoft.CommandPalette.Extensions), que é como as extensões podem se comunicar com a Paleta de Comandos.
A paleta de comandos usará o catálogo de pacotes para encontrar aplicativos que se listam como um windows.appExtension
para com.microsoft.commandpalette
.
Registrando sua extensão
As extensões podem se registrar na Paleta de Comandos usando seus .appxmanifest
. Como exemplo:
<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>
Neste manifesto, estamos usando um servidor COM fora de processo para atuar como a camada de comunicação entre seu aplicativo e a Paleta de Comandos. Não se preocupe com isso! O projeto de modelo cuidará da criação de um servidor COM para você, iniciá-lo e enviar seus objetos para a Paleta de Comandos.
Notas importantes
Alguns elementos notáveis sobre o exemplo de manifesto:
- O aplicativo deve especificar um
Extensions.uap3Extension.AppExtension
com o Nome definido comocom.microsoft.commandpalette
. Esse é o identificador exclusivo que a Paleta de Comandos usa para localizar suas extensões. - O aplicativo deve especificar um
Extensions.comExtension.ComServer
para hospedar sua classe COM. Isso permite que o sistema operacional registre esse GUID como uma classe COM que podemos instanciar.- Verifique se esse CLSID é exclusivo e corresponde ao de seu aplicativo. Se você alterar um, precisará alterar os três.
- No
Properties
do seuAppExtension
, você deve especificar um elementoCmdPalProvider
. Aqui você especifica o CLSID da classe COM que a Paleta de Comandos instanciará para interagir com sua extensão.- Atualmente, há suporte apenas para
Commands
.
- Atualmente, há suporte apenas para
Conteúdo relacionado
Windows developer