Generar salida del teclado en el programa Java que se ejecuta como servicio de Windows

Kim Navegadores:

He creado un independiente sencilla aplicación Java (JAR) que se conecta a un escáner de código de barras Honeywell más de un puerto COM virtual (mediante RXTX bibliotecas para el establecimiento de la conexión COM).

Después de conectar, a continuación, el programa recibe la entrada desde el escáner, la transforma mediante una lógica personalizada y finalmente vuelve a dirigir la salida transformado a la salida estándar utilizando el robot de clase. Nada realmente compleja.

Así pues, si corro el programa y luego escanear un valor "A", la aplicación transforma en "B", y cuando la libreta está activo (o algún otro campo de entrada / programa), "B" se emitirá como si se escaneó originalmente por el escáner.

Este programa funciona perfectamente cuando se ejecuta como un archivo JAR (o bat envoltura). Sin embargo, cuando se envuelve este archivo JAR / BAT como un servicio de Windows (usando JSW Comunidad Edition o YAJSW) el programa funcionará perfectamente, pero no dará salida a las pulsaciones de teclas "imitado", interpretada por la Robot.class.

Incluso he utilizado JNA bibliotecas con el sendInput()método (como sustituto de la clase Robot) para crear las pulsaciones de teclas como cerca del nivel de sistema operativo como possbile, pero esto no funcionó también ... También probé a hacer el servicio interactivo , sino también este tampoco funcionaba. Actualmente estoy quedando sin opciones.

Así que mi pregunta es: ¿Es cierto que no se puede generar eventos de prensa de teclado cuando se ejecuta como un servicio de Windows? Me podía imaginar que esto podría ser un gran problema de seguridad y tal vez por lo tanto, no está permitido.

Cualquier comentario o una posible solución sería muy bienvenido! ¡Muchas gracias de antemano!

kunif:

Es una especificación llamada sesión 0 aislamiento, que se introdujo en Windows Vista.
Los programas que actúan como servicio de windows no tienen una interfaz de usuario.
Por favor referirse a estos artículos y documentos.

Compatibilidad de aplicaciones - Sesión 0 El aislamiento
de la sesión 0 Aislamiento - Centro de descarga de Microsoft

¿Cuál es la sesión 0 Aislamiento? ¿Qué necesito saber acerca de ella?
Sesión 0 Aislamiento y Secure Desktop: Windows 7 AppCompat Series


Además
favor, intente registrarse para el programador de tareas.
Registro de tareas en el planificador de tareas de Windows en Java

En ese caso, puede ser ineficaz a menos que sea "sólo se ejecutan cuando el usuario ha iniciado sesión".
Este es un artículo sobre Windows Server.
mostrar la ventana del programa de la tarea schedule.

Sin embargo, hay una posibilidad de que no va a funcionar, incluso si lo hace.
Sencillo programa en C ++ no se ejecuta como una tarea programada (edición interactiva / no interactiva?)

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=211598&siteId=1
Recomendado
Clasificación