<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: klewersina</title>
    <description>The latest articles on DEV Community by klewersina (@yury_shynkevich_1dd35c1ae).</description>
    <link>https://dev.to/yury_shynkevich_1dd35c1ae</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4080011%2Fc4cd5ec1-242b-4af6-ac9c-01c66a8b7b49.png</url>
      <title>DEV Community: klewersina</title>
      <link>https://dev.to/yury_shynkevich_1dd35c1ae</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yury_shynkevich_1dd35c1ae"/>
    <language>en</language>
    <item>
      <title>De macOS para o Windows sem estresse: Como criei um remapeador leve e o publiquei na Microsoft Store via GitHub Actions</title>
      <dc:creator>klewersina</dc:creator>
      <pubDate>Thu, 10 Sep 2026 18:34:34 +0000</pubDate>
      <link>https://dev.to/yury_shynkevich_1dd35c1ae/de-macos-para-o-windows-sem-estresse-como-criei-um-remapeador-leve-e-o-publiquei-na-microsoft-38hm</link>
      <guid>https://dev.to/yury_shynkevich_1dd35c1ae/de-macos-para-o-windows-sem-estresse-como-criei-um-remapeador-leve-e-o-publiquei-na-microsoft-38hm</guid>
      <description>&lt;h2&gt;
  
  
  Página do App na Microsoft Store: &lt;a href="https://apps.microsoft.com/detail/9N3VZ7JXZW28" rel="noopener noreferrer"&gt;CtrlAltRemapper (Microsoft Store)&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Se você alterna frequentemente entre o macOS e o Windows no seu dia a dia, com certeza já passou por essa "dor". No MacBook em casa você usa o Cmd, mas no trabalho senta em frente a um PC com Windows (ou vice-versa) — e a sua memória muscular entra em colapso total. Ao tentar copiar um texto, o polegar vai automaticamente para a tecla Alt (que no teclado do PC fica na mesma posição física do Cmd no Mac), e o resultado é o menu do aplicativo sendo ativado ou nenhuma resposta...&lt;/p&gt;

&lt;p&gt;Tentei algumas ferramentas de remapeamento existentes, mas nenhuma me satisfez. Ou a variedade de atalhos era extremamente limitada, ou exigia configurações manuais e tediosas para cada atalho.&lt;/p&gt;

&lt;h3&gt;
  
  
  Objetivos do Projeto
&lt;/h3&gt;

&lt;p&gt;Eu queria resolver esse problema com um aplicativo leve e sem interface gráfica (GUI). O objetivo era um simples &lt;strong&gt;"execute uma vez e esqueça"&lt;/strong&gt;, sem necessidade de ajustes constantes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sem GUI pesada:&lt;/strong&gt; O aplicativo roda silenciosamente na bandeja do sistema (System Tray).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consumo mínimo de recursos do sistema.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacidade total:&lt;/strong&gt; Funciona 100% local e offline, sem coletar ou enviar digitações.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integração nativa com Windows 10 / 11:&lt;/strong&gt; Formato de pacote MSIX com suporte à inicialização automática junto com o sistema.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;E assim nasceu o projeto &lt;strong&gt;CtrlAltRemapper&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Etapa de Compilação: Da arquitetura x86 para x64 nativo
&lt;/h3&gt;

&lt;p&gt;O código do remapeador foi escrito em AutoHotkey. Para converter o script em um executável standalone (.exe), utilizei o compilador padrão &lt;strong&gt;Ahk2Exe&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A primeira compilação foi simples. Inicialmente, optei por compilar em 32-bit (x86) pensando na compatibilidade. Porém, durante os testes, descobri que essa escolha gerava problemas no Windows 11 de 64 bits: executar hooks de teclado de 32 bits dentro de aplicativos nativos de 64 bits (como o novo Bloco de Notas) gerava uma &lt;strong&gt;micro-latência por causa do marshalling na camada WoW64&lt;/strong&gt;. O Windows interpretava esse atraso mínimo como um travamento e desativava o hook global.&lt;/p&gt;

&lt;p&gt;Após identificar a causa, recompilai o aplicativo para a arquitetura nativa &lt;strong&gt;x64&lt;/strong&gt;, o que resolveu completamente o problema de desempenho dos hooks.&lt;/p&gt;




&lt;h3&gt;
  
  
  Tabela de Atalhos Suportados
&lt;/h3&gt;

&lt;p&gt;O aplicativo traz a lógica e o layout de teclas da Apple para o ecossistema do Windows. Confira a lista completa de atalhos remapeados:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tecla no PC&lt;/th&gt;
&lt;th&gt;Função (Estilo Mac)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Atalhos Básicos (Basic Shortcuts)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + A&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Selecionar tudo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + C&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Copiar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + V&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Colar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + X&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Recortar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Z&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Desfazer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Y&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Refazer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + S&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Salvar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + F&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Localizar / Buscar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + P&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Imprimir&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Formatação de Texto (Text Formatting)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + B&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Negrito&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + I&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Itálico&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + U&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sublinhado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Shift + V&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Colar sem formatação (texto simples)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + K&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Inserir hiperlink&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Navegador e Gerenciamento de Janelas (Browser &amp;amp; Window)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Q&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fechar aplicativo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + H&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Ocultar janela ativa&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + W&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fechar janela ou aba&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + N&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Novo arquivo ou janela&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + O&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Abrir arquivo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + R&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Recarregar página&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + -&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Diminuir zoom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + +&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Aumentar zoom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + 0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Redefinir zoom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + T&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nova aba ou documento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Shift + T&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reabrir aba fechada&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Clique Esquerdo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Abrir link em nova aba / Mudar foco&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sistema e Navegação (System &amp;amp; Navigation)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Espaço&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Alternar idioma de entrada (emula ⌘ + Espaço)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + Backspace&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Excluir caractere à direita (Forward Delete)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Alt + D&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Adicionar aos favoritos / Excluir linha&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Vale destacar que o comportamento nativo da tecla &lt;strong&gt;Ctrl&lt;/strong&gt; permanece 100% intocado, permitindo usar ambos os estilos de atalho em paralelo.&lt;/p&gt;




&lt;h3&gt;
  
  
  Automação de Build MSIX via GitHub Actions
&lt;/h3&gt;

&lt;p&gt;Gerar o formato moderno de pacote do Windows (MSIX) pode ser desafiador, especialmente ao criar pipelines de CI/CD automatizados. Estruturei o pipeline criando dois workflows independentes no GitHub Actions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Workflow de Produção (&lt;code&gt;build.yml&lt;/code&gt;)&lt;/strong&gt;: Empacota o executável e recursos em um pacote &lt;code&gt;.msix&lt;/code&gt; limpo e não assinado. Ele é enviado diretamente ao Microsoft Partner Center e assinado automaticamente com o certificado oficial e confiável da loja durante a publicação.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow de Teste (&lt;code&gt;test-sign.yml&lt;/code&gt;)&lt;/strong&gt;: Criado para testes locais. O script gera um certificado autoassinado em tempo de execução, exporta em formato &lt;code&gt;.pfx&lt;/code&gt; e assina o pacote de teste usando a ferramenta &lt;code&gt;signtool.exe&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Abaixo está o arquivo de configuração YAML do robot de teste, projetado para localizar dinamicamente as ferramentas do Windows SDK no runner do GitHub:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Test-Sign MSIX Package&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;workflow_dispatch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pack-and-sign&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;windows-latest&lt;/span&gt;

    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout code&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Find Windows SDK Tools&lt;/span&gt;
      &lt;span class="na"&gt;shell&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pwsh&lt;/span&gt;
      &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;tools&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;$makeappx = Get-ChildItem -Path "C:\Program Files (x86)\Windows Kits\10\bin" -Filter "makeappx.exe" -Recurse | Where-Object { $_.FullName -like "*x64*" } | Select-Object -First 1 -ExpandProperty FullName&lt;/span&gt;
        &lt;span class="s"&gt;$signtool = Get-ChildItem -Path "C:\Program Files (x86)\Windows Kits\10\bin" -Filter "signtool.exe" -Recurse | Where-Object { $_.FullName -like "*x64*" } | Select-Object -First 1 -ExpandProperty FullName&lt;/span&gt;
        &lt;span class="s"&gt;echo "MAKEAPPX_PATH=$makeappx" &amp;gt;&amp;gt; $env:GITHUB_ENV&lt;/span&gt;
        &lt;span class="s"&gt;echo "SIGNTOOL_PATH=$signtool" &amp;gt;&amp;gt; $env:GITHUB_ENV&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Pack MSIX&lt;/span&gt;
      &lt;span class="na"&gt;shell&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pwsh&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;&amp;amp; "$env:MAKEAPPX_PATH" pack /d . /p CtrlAltRemapper_unsigned.msix /v&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Create Test Certificate and Sign&lt;/span&gt;
      &lt;span class="na"&gt;shell&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pwsh&lt;/span&gt;
      &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
        &lt;span class="s"&gt;$password = ConvertTo-SecureString "TestPassword123" -AsPlainText -Force&lt;/span&gt;
        &lt;span class="s"&gt;$cert = New-SelfSignedCertificate -Type Custom -Subject "CN=BD6FFC77-0FDF-42B7-95A8-73C66D341EDE" -KeyUsage DigitalSignature -FriendlyName "TestCert" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3")&lt;/span&gt;
        &lt;span class="s"&gt;Export-PfxCertificate -Cert $cert -FilePath "testcert.pfx" -Password $password&lt;/span&gt;
        &lt;span class="s"&gt;&amp;amp; "$env:SIGNTOOL_PATH" sign /fd SHA256 /a /f "testcert.pfx" /p "TestPassword123" CtrlAltRemapper_unsigned.msix&lt;/span&gt;
        &lt;span class="s"&gt;Move-Item -Path CtrlAltRemapper_unsigned.msix -Destination CtrlAltRemapper_Signed.msix&lt;/span&gt;

    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Upload Signed MSIX and Certificate&lt;/span&gt;
      &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/upload-artifact@v4&lt;/span&gt;
      &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CtrlAltRemapper-TestSign-Package&lt;/span&gt;
        &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;CtrlAltRemapper_Signed.msix&lt;/span&gt;
          &lt;span class="s"&gt;testcert.pfx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Desafios na Certificação da Microsoft Store
&lt;/h3&gt;

&lt;p&gt;Publicar um remapeador de teclas que opera em nível de sistema na Microsoft Store exigiu superar várias restrições rígidas de segurança do Windows 10/11.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Declaração de &lt;code&gt;runFullTrust&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;Como o app intercepta atalhos usando a API Win32 de baixo nível (&lt;code&gt;SetWindowsHookEx&lt;/code&gt;), a sandbox padrão do UWP bloqueava a execução. Foi necessário declarar a capacidade restrita &lt;strong&gt;&lt;code&gt;runFullTrust&lt;/code&gt;&lt;/strong&gt; no &lt;code&gt;AppxManifest.xml&lt;/code&gt;. Durante o envio, fornecemos uma justificativa técnica detalhada sobre a segurança da utilidade e a necessidade do acesso.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Exigência de &lt;code&gt;HeadlessAppBypass&lt;/code&gt; e suporte da Microsoft
&lt;/h4&gt;

&lt;p&gt;No primeiro envio, enfrentamos uma rejeição automática. Como o app roda apenas na bandeja do sistema sem uma janela principal de GUI, o Windows SDK o identificou como um "headless app". As políticas da Microsoft exigiam vincular a permissão &lt;strong&gt;&lt;code&gt;HeadlessAppBypass&lt;/code&gt;&lt;/strong&gt; ao nosso &lt;strong&gt;Store ID&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Após contato com a equipe de suporte do Microsoft Partner Center explicando a natureza do app, o acesso foi liberado manualmente para a conta de desenvolvedor.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Depuração no ambiente de certificação (Erro de &lt;code&gt;VCRUNTIME140.dll&lt;/code&gt; e máscaras de Alt)
&lt;/h4&gt;

&lt;p&gt;Nos testes automatizados em ambiente limpo da Microsoft, o app apresentou falhas devido à ausência da DLL do sistema &lt;code&gt;VCRUNTIME140.dll&lt;/code&gt;.&lt;br&gt;
Para resolver as pendências de certificação:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recompilamos e ajustamos o manifesto para a arquitetura &lt;strong&gt;x64 nativa&lt;/strong&gt; (&lt;code&gt;ProcessorArchitecture="x64"&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Adicionamos a nota sobre requisitos de sistema nos &lt;strong&gt;listings da loja em 8 idiomas&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Implementamos uma máscara ativa (&lt;code&gt;vkFF/vkE8&lt;/code&gt;) para a tecla Alt, evitando que o Windows transferisse o foco para a barra de menus ao alternar atalhos rapidamente.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Considerações Finais
&lt;/h3&gt;

&lt;p&gt;O desenvolvimento do CtrlAltRemapper provou que é possível levar um projeto indie focado em produtividade a um pacote de nível enterprise na Microsoft Store.&lt;/p&gt;

&lt;p&gt;O aplicativo está disponível gratuitamente para testes no link abaixo:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Download na Microsoft Store:&lt;/strong&gt; &lt;a href="https://apps.microsoft.com/detail/9N3VZ7JXZW28" rel="noopener noreferrer"&gt;CtrlAltRemapper (Microsoft Store)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedbacks, relatos de bugs e sugestões de novos atalhos são muito bem-vindos nos comentários!&lt;/p&gt;

</description>
      <category>braziliandevs</category>
      <category>showdev</category>
      <category>productivity</category>
      <category>windows</category>
    </item>
  </channel>
</rss>
