LINUX.ORG.RU

Java. Как получить раскладку клавиатуры у текущего активного окна системы?

 , ,


0

1

Помогите с сабжем. Необходимо:

  • Определить текущее активное окно системы (Linux, Windows)
  • Определить раскладку клавиатуры в найденном окне

Как реализовать?

Если интересно, то это подзадача для задачи: реализовать посимвольный ввод текста из буфера обмена в буфер клавиатуры, чтобы полностью повторить его в текущем активном окне системы.

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

Ответ на: комментарий от gh0stwizard

нет! никакого завуалеризма! Будут копировать текст из N*1000 строк экселя и автоматически вставлять в другую программу, которая не поддерживает многострочный ввод в свои визуальные объекты. Работать будет так, как будто сам человек сидит и с клавиатуры набирает текст из экселя. Сейчас уже работает такое под виндой, написанное мной на Qt/C++. Но есть траблы с некоторыми символами, а исходники я потерял (ССЗБ, знаю). Пишу вот заново, параллельно осваивая Яву. Так что все законно!

bvn13 ★★★★★
() автор топика
Последнее исправление: bvn13 (всего исправлений: 1)
Ответ на: комментарий от yacuken

Да, я подозреваю, что именно оно. Но если брать от InputContext.getInstance().getLocale(), то показывает все время одно и то же. Я так понял от гугла, что оно показывает локаль системы в этом случае. А надо брать InputContext у текущего окна, которое я не знаю, как найти :)

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от yacuken

а как вызвать protected-метод у системного класса, если инстанс этого системного класса создается при запуске приложения? Если абстрагироваться от темы окон, а взглянуть на мою ссылку выше, как на простой абстрактный пример. Есть протектед-метод у системного класса. Я могу получить уже созданный JVM инстанс этого класа, а нужно вызвать у него протектед-метод. Как быть?

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Как правильно написать декоратор для этого класса?

Делаю:

abstract public class MyKeyboardFocusManager extends KeyboardFocusManager {

	protected KeyboardFocusManager kfm;
	
	public MyKeyboardFocusManager(KeyboardFocusManager kfm) {
		this.kfm = kfm;
	}

	public Window getGlobalFocusedWindow() throws SecurityException {
		//return kfm.getGlobalFocusedWindow();
	}
}

В закоменченной строке не могу дотянуться до протектед-метода.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от bvn13
public class MyKeyboardFocusManager extends KeyboardFocusManager {
	
	public MyKeyboardFocusManager() {
		super();
	}

	public Window getGlobalFocusedWindow() throws SecurityException {
		return super().getGlobalFocusedWindow();
	}
}

Как-то так.

ZUKMAN
()

напиши нужный метод на крестах, и потом дерни его через JNI

stevejobs ★★★★☆
()

Здравствуй, DOS!

Java

Определить раскладку

Определить раскладку

Определить раскладку

Определить раскладку

Определить раскладку

Определить раскладку

Определить раскладку

Определить раскладку

Java

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.