Pergunta

Eu tenho um aplicativo que produz arquivos. Gostaria de conectar esses arquivos com o aplicativo para que clique duas vezes no arquivo inicie meu aplicativo.

Tudo funciona corretamente, exceto pelo aborrecimento de que o ícone se pareça com o ícone do meu aplicativo. Eu gostaria de ter um ícone para aplicação e um ícone para seus documentos.

O Valor Defaulticon no Registro requer "App.exe, 1" sintaxe, onde 1 é o índice de ícone. Parece que os recursos do .NET não são recursos do Win32.

Eu tentei seguir, mas sem sucesso:

  1. Selecionando "Recurso incorporado" como ação de construção do arquivo.
  2. Adicionando ícone ao arquivo de recursos.

A única coisa que funcionou é ter um arquivo de ícone separado do executável e apontando para ele. No entanto, isso me parece render.

Alguma idéia de como resolver isso?

Foi útil?

Solução

Você já tentou definir 2 como o índice de ícone?

EDIT: Encontrei uma maneira, mas você precisa fazê -lo novamente para cada nova construção.

  1. Abra o arquivo .exe no Visual Studio (Arquivo -> Abra o arquivo)
  2. Clique com o botão direito do mouse na pasta do ícone e selecione Adicionar recurso
  3. Clique na importação do botão
  4. Selecione seu arquivo .ico
  5. Você pode ter que mexer com os números de ícones, acho que o número mais baixo (Exemplo 101) será o ícone do aplicativo
  6. Lembre -se do novo número do ícone e defina -o como o índice

Edit 2: tente este artigo: http://www.codeproject.com/kb/dotnet/embedmultipleiconsdotnet.aspx

Outras dicas

Se você estiver usando o Wix Toolset (http://www.wixtoolset.org) Para instalar seu aplicativo, você pode fazer com que o Wix cuide do tipo de arquivo e registro do ícone do documento

Aqui está o meu encantamento mágico Wix:

    <!-- Your executable -->
    <File 
        Id="MaAppExe" 
        Name="MyApp.exe" 
        Source="MyApp.exe" KeyPath="yes" >
    </File>

    <!-- your document icon -->
    <File 
        Id='IconMyAppDoc.ico' 
        Name='IconMyAppDoc.ico' 
        Source='$(var.MyApp.ProjectDir)\Resources\Images\Icons\docicon.ico' />

    <-- File Extension and associated document icon -->
    <ProgId 
        Id='MyApp.MyAppExtension' 
        Description='My App Data File' 
        Icon='IconMyAppDoc.ico'>
        <Extension 
            Id='MyApp' 
            ContentType='text/plain'>
            <Verb 
                Id='open' 
                Command='Open' 
                TargetFile="MyAppExe" 
                Argument='"%1"' />
         </Extension>
    </ProgId>
</Component>

DefaultIcon Também aceitará um caminho para um arquivo .iCO válido como um ícone.

Você deve garantir que você tenha ícones Win32 em seu projeto, não apenas nos ícones .NET. Espero que alguém aponte uma maneira fácil de fazer isso, mas nesse meio tempo, aqui vai ...

Compile sua montagem e, no Visual Studio, selecione "Arquivo -> Abrir -> Abrir arquivo", abra a montagem compilada. Adicione o ícone que você deseja usar para documentos e defina seu ID para algo acima da usada para o seu aplicativo. Salve a montagem. Agora você tem recursos Win32 disponíveis.

-Editar-
Depois de editar seu post, Zippyv parece ter uma resposta muito boa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top