
Vou tentar esclarecer. Eu tenho um exe, vamos chamá-lo de foo.exe em um PC com Windows 10.
Se eu clicar duas vezes neste arquivo - seja por meio de um atalho na área de trabalho ou clicando duas vezes no File Explorer - ele gerará um erro (neste ponto, as especificações do erro não importam, mas acredito que pode estar tentando para chamar alguma dll e falhar).
No entanto, se eu criar um arquivo .cmd que diga "Iniciar foo.exe", ele funcionará bem - nenhum erro e o programa estará totalmente funcional.
Estou me perguntando quais são as diferenças funcionais entre os modos de inicialização e estou inclinado para possivelmente o token de segurança sob o qual ele é executado.
Então, basicamente, se eu fizer apenas um simples clique duplo, recebo fogo e enxofre.
No entanto, se eu: A. Executá-lo a partir de um arquivo .cmd ou B. Executar como administrador ou C. Iniciar o item Solucionar problemas de compatibilidade (clique com o botão direito). Esses erros não acontecem. Não parece ser um problema de compatibilidade porque: a. Funciona bem via arquivo .cmd ou run-as-admin b. Se eu salvar o modo de compatibilidade escolhido, ainda haverá erros quando clicar em dbl na próxima vez.
Estou sendo morto por este - é um .exe de fornecedor, então não tenho código-fonte e não posso fornecer detalhes sobre quais DLLs ele está chamando, etc. Estou apenas procurando um segundo par de olhos de alto nível por que executar por meio de um método de inicialização diferente faz com que um exe simples funcione bem.
Este mesmo .exe NÃO teve esse problema no Windows 7 - esse comportamento é novo no WIndows 10. Ouvi dizer que há algo no WIn 10 que, por padrão, executa qualquer coisa sob o token menos privilegiado possível - independentemente de se o usuário é um superadministrador ou convidado, e é aqui que estou me inclinando, mas não tenho certeza e não tenho certeza de como consertar isso. Obrigado!