mega for descargar debug convertir java windows-7 jna taskbar launch4j

for - Fijación de un ejecutable Java(con launch4j) en la barra de tareas de Windows 7



launch4j mega (4)

¿Está buscando esto, que utilicé en mi aplicación para mostrar la aplicación Java en ejecución en la barra de tareas de Windows?

SystemTray systemTray = new SystemTray(composite, parent.getShell(), parent.getDisplay(), "My Application"); systemTray.makeSystemTray();

Después de pasar medio día buscando e intentando, finalmente me rindo.

Tengo una aplicación java de la que creo un archivo ejecutable (para incluir cualquier otra biblioteca y tener un solo archivo). Con launch4j y el tarro ejecutable, estoy haciendo un ejecutable "MyApp.exe".

El ejecutable no funciona bien, pero quiero anclarlo en la barra de tareas de Windows 7. Por ahora, solo tengo la entrada de la barra de tareas "Cerrar ventana".

Después de leer e implementar las siguientes soluciones con JNA

mi aplicación muestra su "ID de modelo de usuario de la aplicación" correctamente en la interfaz gráfica de usuario (solo para fines de prueba).

PERO: mi programa se muestra como "javaw.exe" en el Administrador de tareas y todavía no puedo anclarlo en la barra de tareas, a pesar de que configuro la opción launch4j "nombre del proceso personalizado y manifiesto del estilo XP".

Información básica: estoy trabajando con una cuenta de administrador de Windows 7 y no quiero que la aplicación requiera derechos de administrador.

De todos modos, si inicio la aplicación "como administrador" desde el menú contextual y confirmo el mensaje de UAC, ahora puedo anclar a la barra de tareas. PERO: a pesar de que configuré correctamente el "Identificador de modelo de usuario de la aplicación", Windows todavía quiere anclar "javaw.exe", aunque mi programa ahora se muestra como "MyApp.exe" en el Administrador de tareas.

Estoy totalmente confundido. Pero obviamente no soy el único, teniendo estos problemas. => Vea los últimos comentarios a la respuesta de Gregory Pakosz en Uso de JNA para obtener / configurar el identificador de la aplicación

Preguntas finales:

  1. Gregory Pakosz con JNA para establecer la "ID de modelo de usuario de la aplicación" ( https://stackoverflow.com/a/1928830/1128689 ) está funcionando para mí. Pero aún así, Windows reconoce mi aplicación como una instancia de "javaw.exe". ¿Qué más tengo que hacer?
  2. ¿Quizás alguna actualización de Windows o Java rompió algo aquí?
  3. ¿Realmente tengo que ejecutar mi aplicación con derechos de usuario elevados? Realmente no quiero ...
  4. ¿Hay algunas opciones más en launch4j que tengo que configurar?
  5. ¿Tengo que usar un archivo de manifiesto en launch4j?

Conseguí este trabajo creando un Exe a partir de un jarra ejecutable con la ayuda de JSmooth . JSmooth puse en la barra de tareas y lo ejecuté sin problemas.

Espero que esto ayude


La causa raíz: javaw está registrado como un proceso Host (en el registro de Windows). El comportamiento del método abreviado probablemente se deba a lo siguiente (origen: ID de modelo de usuario de la aplicación (AppUserModelIDs) )

AppUserModelIDs definidos por la aplicación y definidos por el sistema

Algunas aplicaciones no declaran un AppUserModelID explícito. Son opcionales. En ese caso, el sistema utiliza una serie de heurísticas para asignar un AppUserModelID interno.

[...]

Si el proceso se inició a través de un acceso directo que contiene argumentos de inicio (generalmente el contenido de destino para hospedar como la "aplicación"), el sistema puede determinar la identidad y la aplicación se puede anclar y reiniciar.

Sobre el comportamiento del proceso de host:

Registro de una aplicación como proceso host

Una aplicación puede configurar la entrada de registro IsHostApp para hacer que el proceso de ese ejecutable se considere un proceso host en la barra de tareas. Esto afecta su agrupación y las entradas predeterminadas de la lista de salto.


Tampoco hay problema con winrun4j , que es más nuevo y más fácil de usar que Jsmooth