X

Bonus630DevToolsBar - Run Command Docker

Rode comandos a partir de uma dll

Publicado: Modificado:

Bonus630

Muitas vezes eu vou ao Macro Manager Docker para criar macros C#, macros C# têm a vantagem sobre addons porque não requerem
fechar e reabrir o coreldraw todas as vezes que os códigos mudarem, é muito útil fazer testes, mas se você quebrar o código o coreldraw trava
e o visual studio vai fechar então é maior o risco de perder as últimas alterações no código. Outra desvantagem é exigir a
versão específica do visual studio.

Para contornar essa desvantagem e manter a vantagem de "edição de código quente", criei uma janela de encaixe de complemento cujo monitor uma pasta para exibir uma árvore que
contém dll,classe,método.

este docker permitirá edições em arquivos dll e não será necessário reabrir o coreldraw similarmente ao Macro Manager Docker, mas você não perderá o código se o coreldraw travar,
permite o uso de qualquer versão do visual studio ou qualquer outro editor de texto, e a possíbilidade de utilizar VisualBasic além do C#

Para tornar a capacidade de criação e utilização de comandos em C# e VB em qualquer editor, esta docker possui um template de DLL para C# e um para VB, além de compilar o código utilizando o MSbuild.

 

Usa o mesmo modelo oficial de macro, localizado na [pasta de instalação do corel]/Data/VGCoreApp.vstax, mas requer apenas atributos personalizados para funcionar bem,
você pode criar seu próprio modelo https://docs.microsoft.com/en-us/visu...

eu criei um template c#, este template copia a dll criada para "c:\cdrCommands", você pode editar este caminho editando o arquivo "ClassLibrary2.csproj", nas linhas 54 e 55,
A referência VGCore precisará de atualização para a versão de destino do coreldraw
 para usar no visual studio, copie o zip para %USERPROFILE%\Documents\Visual Studio [versão]\Templates\ProjectTemplates


Na pasta monitorada pode colocar muitas dll.Para criar a dll use o Class Library Template .net framework (não o core, não o standart) no visual studio
Uma dll pode conter muitas classes.
Uma classe pode conter muitos métodos.

classe requer o atributo [CgsAddInModule] e [CgsAddInConstructor] no método construtor, passe o objeto do aplicativo coreldraw no construtor
métodos requerem o atributo [CgsAddInMacro]
isso funciona como macros VSTA no Macro Manager.

depois você pode reutilizar sua dll em outros projetos.

Eu uso muitas vezes as macros vsta para fazer testes, criei essa ferramenta para uso pessoal, mas talvez ajude você também

Agora temos um popup de inspetor de variáveis ​​para valores retornados de nossos comandos
O comando não encadeado será executado em assíncrono em segundo plano
Uma nova zona de interface do usuário para exibir detalhes sobre o comando selecionado, o comando com parâmetros precisa ser executado por este campo.

Você pode passar tipos de valor ou outros valores retornados de outros comandos para params, mas tenha cuidado, eu implementei uma maneira fraca de detectar funções de recursividade ilimitada

Um gerenciador de intervalo de formas foi adicionado, intervalo de formas é no meu caso o parâmetro mais usado passado para meus métodos, esse gerenciador armazena o id de estática de formas em uma lista e recuperação por método, você pode adicionar remove ou clean e adicionar o shaperange get para outro comando com o parâmetro shaperange.

O pop-up do inspetor de retornos será aberto no evento mouse over no campo de valor de retorno e levará um pouco de tempo para ser exibido, e será fechado após 1 segundo após o mouse sair do pop-up.

Fixe os comandos mais usados ​​para acesso rápido

Código fonte: https://github.com/bonus630/RunCommandDocker

Demonstração de testes 1: https://youtu.be/LT8luj9DFoA
Testes Demo 2: https://youtu.be/jotNg8oajJo




Faça doações com o botão do PayPal


Todos direitos reservados | 2003 à 2025 | Copyright © Bonus630 | Vr.:5.0