Evitar a elevação (UAC) de um aplicativo que não precisa dele [duplicado]

34

Tendo migrado recentemente do Vista 32bit para o Windows 7 64bit, um dos meus programas agora exige direitos de administrador.

Eu uso um editor de texto bastante exótico (Crimson Editor). Embora não tenha sido projetado para o Vist / Win7, funcionou bem com o Vista. Mas no Windows 7, o executável do programa obtém esse escudo UAC adicionado ao seu ícone (mesmo que o sinalizador "Executar como administrador" na guia de compatibilidade não esteja ) e solicita a elevação sempre que eu o executar.

Como o Win7 determina que esse aplicativo semelhante a um bloco de notas precisa de direitos de administrador? Como posso substituir essa falsa heurística?

    
por SealedSun 18.08.2009 / 18:14

4 respostas

22

Não, o motivo pelo qual o Crimson Editor faz isso NÃO é porque não está assinado. (E isso não é novidade no Win7). É porque o manifesto do aplicativo, que é incorporado em tempo de compilação, especifica requestedPrivilegeLevel="highestLevel" .

De acordo com esta postagem no fórum , os desenvolvedores do Crimson Editor mudaram isso na revisão 237-241. Eles fizeram isso porque o recurso "Adicionar Crimson Editor ao shell menus de contexto" requer privilégios de administrador.

A correção de longo prazo seria para os desenvolvedores do Crimson Editor corrigirem o manifesto do aplicativo. Eles devem se adicionar aos menus de contexto do shell durante a instalação, ou pelo menos informar aos usuários que eles precisam executar manualmente o aplicativo em nível elevado (o que é fácil de fazer) em vez de exigi-lo.

Para todos os aplicativos com requestedPrivilegeLevel="highestLevel" em seu manifesto (use Manifest View para ver manifestos de aplicativos), você pode usar o Kit de ferramentas de compatibilidade de aplicativos da Microsoft para ajustar o aplicativo com a correção RunAsInvoker, o que força o aplicativo a ser executado com os tokens de usuário padrão.

Para obter mais informações sobre como usar o Application Compatibility Toolkit, consulte esta postagem sobre como aplicá-lo ao Crimson Editor ou instruções gerais .

    
por 01.09.2009 / 05:10
13

Eu descobri que eu tinha dois aplicativos que tinham esse problema. Um tinha 'update' no nome do arquivo e o outro tinha 'update' no 'FileDecsription'. Eu simplesmente removi a palavra 'atualização' desses dois aplicativos e não mais avisos do UAC. Encontrei as informações em "Como funciona o UAC" - "Detecção do instalador" em:

link

Que afirma o seguinte:

Installer Detection only applies to:

  • 32 bit executables
  • Applications without a requestedExecutionLevel
  • Interactive processes running as a Standard User with UAC enabled

Before a 32 bit process is created, the following attributes are checked to determine whether it is an installer:

  • Filename includes keywords such as "install," "setup," and "update."
  • Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name.
  • Keywords in the side-by-side application manifest embedded in the executable.
  • Keywords in specific StringTable entries linked in the executable.
  • Key attributes in the resource file data linked in the executable.
  • Targeted sequences of bytes within the executable.

  • Note: The keywords and sequences of bytes were derived from common characteristics observed from various installer technologies.

    
por 20.12.2011 / 02:21
7

Se você tiver o Visual Studio, você pode fazer o seguinte:

  1. Abra o Visual Studio como administrador.
  2. Pressione Ctrl-O para abrir um arquivo
  3. Navegue até a pasta onde o Crimson Editor está e abra o cedt.exe
  4. O arquivo é aberto usando o editor de recursos e você verá uma árvore com uma ramificação chamada RT_MANIFEST, expanda isso e clique duas vezes na entrada de filho único chamada "1 [English United States]"
  5. Cerca de três quartos da coluna da direita você verá requestedExecutionLevel level="highestAvailable", altere "highestAvailable" para "asInvoker" (NB, o editor é aberto no modo de sobreposição por padrão.
  6. Salve o arquivo e pronto.

HTH

Kevan

    
por 25.05.2010 / 14:27
4

Há algumas informações sobre a heurística aqui: link

Um manifesto pode ajudar a controlar algumas dessas coisas.

    
por 18.08.2009 / 18:48

Tags