Crear Hotkeys en java

necesito crear hotkeys en java estoy realizando un programa donde yo quiero que así el programa este minizado se pueda presionar control+a y realizar un acción. .. por favor les agradeciera la ayuda ! que e intentado con llamados de dll y muchas cosas en Internet pero no lo logro

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de genitalico

mmm necesariamente que tu

mmm necesariamente que tu programa este mininizado? lo digo por que al estar mininizado pierde el foco y el sistema lo manda a segundo plano por lo que todo lo que este en primer plano es lo que 1 le dara mayor importancia y dos lo que aplastes y hagas le correspondera al programa que tengas en primer plano o al sistema si es lo que esta en primer plano..

ahora dentro de tu programa (estando en primer plano) si que puede realizar los hotkeys que quieras ya que todo lo que sea presionado y capturado cuando tu programa este en primer plano le correspondera a tu programa,

esta un poco raro lo que deseas hacer.. seguramente si que se puede, hablas de dll supongo que estas en windows no tengo idea de como se podran modificar ahi las hotkeys, pero en un linux por ejemplo y dependiendo de tu gestor de ventanas se pueden modificar facilmente en los distintos archivos que tenga tu gestor de ventanas, lo cual pienso podria solucionar en parte tu programa ya que desde ahi se puede hacer que si presiones tal y tal combinacion de teclas haga una accion que puede ser desde una simple llamada a un programa o la ejecucion de un script complejo, podria ser que crearas un script que interactue con tu aplicacion y desde ahi realizar lo que quieres,, pero supongo que funcionaria solo para linux y tendrias que modificar por cada gestor de ventanas su archivo de configuracion..

otra idea no se me ocurre igual alguien mas tenga una mejor solucion a lo que quieres

Desafortunadamente no hay una

Desafortunadamente no hay una biblioteca (hasta donde me quedé) que sirva para las tres plataformas principales.

Si te sirve para Windows solamente puedes utilizar la biblioteca JIntellitype.

Hace ya un par de años estaba esta pregunta en StackOverflow, revísala a ver si te sirve:

Imagen de andrew171

Si e incluso lei sobre JIntellitype.

el detalle es que no logro hacer funcionar. o tal vez hago algo mas! de verdad te agradecería si pudiera hacer un guía o un tutorial de como usarla. e incluso te pago si es posible ! me urge mucho poder crear hotkeys en windows. !

Imagen de genitalico

se me ocurre algo extraño que

se me ocurre algo extraño que posiblemente funcione en windows y linux unaq con diferentes configuraciones o igual no funciones pero esta es mi idea..

podrias crear un hilo en tu programa que este revisando un archivo de texto o binario ya sabras tu, el cual contenga informacion relevante a lo que quieres que hagas al precionar X combinacion de teclas..
hora configurando windows o linux la combinacion que mas te guste, podrias hacer que al presionar por ejemplo control + x te corra un pequeño programa que crees en el cual escriba en el archivo que esta leyendo tu programa principal..
por ejemplo si presionas control +x que tu programita escriba en el archivo de texto "imagen" el cual a su vez tu aplicacion leera la palabra imagen y mostrara una imagen
o control + r y que el programa escriba "video" y tu programa que esta leyendo el archivo interprete video y muestre un video..
y asi con lo que quieras hacer..

no se es una idea igualmente o no funcione o este mas facil de hacer de otra forma. el problema es que no haras las mismas configuraciones en un sistema que en otro..pero si solo es para windows podrias hacer que tu programa establezca las hotskeys al iniciar escribiendo en el registro..(no se como) y de ahi lo que te digo :D

Imagen de andrew171

también se me ocurrió eso

Pero no funcionó como esperaba y es que la aplicación q estoy haciendo requiere de que el programa este en segundo plano y al presionar el hotkeys realice la acción que se le asignó ya e intentado infinidad de cosas pero no lo logró mire una forma que le a.servidos mucha.gente que es trabajar con dll de c++ o c# pero mi entiendo muy bien y pues me salen errores

mmhhh en serio? Yo hice un

mmhhh en serio?

Yo hice un programa hace años y jaló muy bien.

Ya revisaste está página obviamente:

Lo único relevante es que tienes que poner el .jar en tu classpath y el .dll en tu path.

Si ya hiciste eso, estaría bien que más bien tu dijeras que es lo que no te salió. Algún mensaje de error?

Dejame ver si encuentro mi código, es de hace 4 años así que lo dudo :-S

Uy, que recuerdos. Hace

Uy, que recuerdos.

Hace cuatro años estaba haciendo esta aplicación y tan paranóico me puse que la encripté :P

Afortunadamente logré rescatar lo que t a tí te interesa, ahi va esta chulada.

Este es el main, inicia la aplicación, la pantalla (que se llama InputWindow, es irrelevante lo que hace ), y los dos listeners, el que sirve para cerrar la aplicación y el que sirve para reaccionar al teclado global.

Recuerdo que simplemente agarré el ejemplo de la página de jintelly type y lo modifique un poco.

Además como el .dll tiene que estar en el PATH y no quería tener que hacer un instalador, yo ponía el .dll en un directorio bin del mi programa y con la clase que está hasta el final lo agregaba dinamicamente. Esto último no es necesario si tienes el .dll en tu path.

Aún así te lo paso tal cual lo encontré para no tenerle que poner ni quitar cosas.

Espero que te sirva.

 

Precisamente lo que me detuvo fue la falta de soporte para OSX... en fin.. quizá lo retome algún día de estos.

Otra forma de hacerlo, es con

Otra forma de hacerlo, es con AutoHotKey ( ) y justo como dice genitalico hacer que AutoHotKey ejecute un script cualquiera y este script tenga una llamada por socket a tu programa. No es ni lo más seguro ni lo más elegante (cualquiera podría ejecutar tu programa via telnet ) pero puede ayudarte.

Imagen de andrew171

exelente

voy a probarlo!! jejejej vamos haber tu usas que IDE para java? netbeans , eclipse ? o cual

Como? Aún no lo pruebas? Yo

Como? Aún no lo pruebas?

Yo uso Intellj IDEA, pero para esto no necesitas más que un editor de texto (SublimeText2 es buena opción) y la linea de comandos.

Espero que te haya servido.

Si no mandame un mensaje y nos ponemos de acuerdo.

Imagen de andrew171

Yo uso Netbeans pero me sale

Yo uso Netbeans pero me sale una serie de errores si me pudieras decir donde coloco cada archivo te lo agradecería :) a por cierto me fui por la segunda opción como dijo el amigo arriba con un block de notas . pero claro quisiera poder lograr con jintellitype que es mucho mas factible :)

Imagen de andrew171

Esta linea me da error

Esta linea me da error

input = InputWindow.createInstance();

jejeje ya es la unica :)

Jajaj eso es porque

Jajaj eso es porque   es el único objeto de MI aplicación que quedó ahí (algo debía de hacer no?) Yo muestro una ventana, tu tienes que mostrar la tuya.

Imagen de andrew171

jajajaaj no lo creas ya lo

jajajaaj no lo creas ya lo intente e igual !!

Imagen de andrew171

en donde deberia colocar las

en donde deberia colocar las DLL ?

¬¬

¬¬

Imagen de andrew171

xD ya pues lo siento soy

xD ya pues lo siento soy lento para captar las bainas en java es un lenguaje nuevo para mi hahahaha. intento pero algunas cosas no logro entender :) por eso soy tan canson

En cualquier lugar ...

En cualquier lugar ... mmhhh
abre tu linea de comandos

(solución fea)
Escribe
 

Te van a salir un montón de directorios. Escoge el que más te guste y ahí pegalo.

Solución un poquito mejor, crea un nuevo directorio, ponlo ahí y en las variable de ambiente (Mi PC > Administrar > Variables d eentorno > Path ) agrega tu directorio

Y solución usando el código que te pasé

crea un directorio bin en tu proyecto y ahí pégalo. No sé como se hace eso en netbeans, pero en Windows buscas donde está tu .java y ahí le das click derecho "crear folder" lo nombras bin y ya.

TuProyecto  +- src / tus

 

Luego desde la linea de comandos:

 

Y tan, tan.

Lo bonito que tiene lo que te pasé es que agrega automáticamente el dll en tiempo de ejecución buscandolo de un directorio que se llame bin ( o al menos eso es lo que recuerdo ) pero... no me creas, ahí está el código. Leelo, intenta correrlo, quitele cosas, correlo de nuevo, agregale, hasta que te funcione.

Suerte :)