À l'aide de Java pour définir le focus à une application Java dans Windows
Je voudrais écrire une application qui crée une entrée pour un non-application Java dans Windows. Avec le Robot de classe, il est facile de générer de l'entrée, mais j'ai besoin de régler le focus à un autre de l'application de zone de texte et saisissez le texte.
Ne vous inquiétez pas je ne suis pas en train d'écrire quelque chose de malveillant, je veux juste utiliser Java pour "étendre" une vieille application écrite en Delphi.
Une autre option est que mon application Java n'est jamais le focus, de sorte que les fenêtres de l'application a le focus et lorsque vous cliquez sur un bouton de l'application Java, l'accent n'est jamais perdu dans la fenêtre d'origine. Je n'ai aucune idée si c'est possible?
pour ceux qui viennent à cette question par l'intermédiaire de google, sur OSX: stackoverflow.com/questions/14859733/...
pour ceux qui viennent à cette question par l'intermédiaire de google, sur OSX: stackoverflow.com/questions/14859733/...
OriginalL'auteur Stijn Vanpoucke | 2011-01-24
Vous devez vous connecter pour publier un commentaire.
CMDOW est un utilitaire de ligne de commande qui vous permet d'effectuer plusieurs actions telles que l'activation/la désactivation, l'inscription, la minimisation/maximisation etc.
Sinon, vous pouvez écrire un script VBScript pour activer une autre application. Par exemple:
Ensuite utiliser
Runtime.exec
à partir de votre application Java pour exécuter le script.Cela vous aidera à activer une autre application.
Cependant, il sera beaucoup plus difficile si vous voulez vous concentrer sur une zone de texte dans l'application et écrire un texte.
savez-vous quelque chose de similaire pour le système d'exploitation linux?
OriginalL'auteur dogbane
La détection d'une application spéciale et apporter l'un à l'avant peut nécessiter un natif helper, mais pour le moment vous pouvez envoyer ALT+TAB pour activer le "prochain" de l'application
Cela fonctionne:
vous avez juste besoin de mettre en œuvre une méthode de convenance à la carte caractères (à partir d'une Chaîne) aux principales valeurs de l'événement... (ou trouver des solution existante)
OriginalL'auteur Andreas_D
Configurer un retard, sinon ça ne fonctionne pas:
OriginalL'auteur sreenath V
Sur Mac, il est possible de le faire avec AppleScript. AppleScript est intégré au système, de sorte qu'il sera toujours fonctionnelle.
https://developer.apple.com/library/content/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html
Vous avez besoin de ne détecter que vous êtes sur mac et qui a le nom de l'application.
OriginalL'auteur Radek Sip
Vous avez besoin d'ajouter suffisamment de retard pour l'application pleinement initialiser et obtenir le focus.
Voici une base de travail exemple... Andreas_D est exact que vous avez besoin d'émuler le système touche pour basculer entre les programmes... (Alt+Tab sur Windows, Cmd+Tab sur OS X)
OriginalL'auteur Eddie B