Pregunta

Tengo aplicación que produce archivos. Me gustaría conectar esos archivos con la aplicación para que hacer doble clic en el archivo inicie mi aplicación.

Todo funciona correctamente, excepto por la molestia de que el ícono se vea igual que el ícono de mi aplicación. Me gustaría tener un ícono para la aplicación y un ícono para sus documentos.

El valor DefaultIcon en el registro requiere " app.exe, 1 " sintaxis donde 1 es el índice de iconos. Parece que los recursos .NET no son recursos Win32.

Intenté seguir pero sin éxito:

  1. Seleccionando " Recurso incrustado " como acción de compilación del archivo.
  2. Agregar icono al archivo de recursos.

Lo único que funcionó es tener un archivo de íconos separado del ejecutable y señalarlo. Sin embargo, eso me parece como rendirse.

¿Alguna idea de cómo resolver esto?

¿Fue útil?

Solución

¿Ha intentado configurar 2 como el índice de iconos?

EDITAR: Encontré una forma pero tienes que hacerlo de nuevo para cada nueva construcción.

  1. Abra el archivo .exe en Visual Studio (Archivo - > Abrir archivo)
  2. Haga clic con el botón derecho en la carpeta del icono y seleccione Agregar recurso
  3. Haz clic en el botón Importar
  4. Seleccione su archivo .ico
  5. Es posible que tenga que meterse con los números de los íconos. Creo que el número más bajo (ejemplo 101) será el ícono de la aplicación.
  6. Recuerda el nuevo número de ícono y configúralo como el índice

EDIT 2: Pruebe este artículo: http://www.codeproject.com/KB/dotnet/embedmultipleiconsdotnet. aspx

Otros consejos

Si está utilizando el conjunto de herramientas Wix ( http://www.wixtoolset.org ) para instalar su aplicación , puede hacer que Wix se ocupe del tipo de archivo y el registro del icono del documento

Aquí está mi encantamiento mágico de 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 también aceptará una ruta a un archivo .ico válido como un icono.

Debe asegurarse de tener iconos de Win32 en su proyecto, no solo de iconos .net. ESPERO que alguien señale una manera fácil de hacer esto, pero mientras tanto, aquí va ...

Compile su ensamblaje, luego desde Visual Studio seleccione " Archivo - > Abrir - > Abrir archivo " ;, abre el ensamblaje compilado. Agregue el icono que desea usar para los documentos y establezca su ID en un valor superior al que está en uso para su aplicación. Guarde el montaje. Ahora tienes recursos de Win32 disponibles.

- Editar -
Después de editar su publicación, ZippyV parece tener una muy buena respuesta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top