Как получить контроль над окнами WindowXP с помощью Java

#java #dll #native #jna

#java #dll #родной #jna

Вопрос:

Мне нужно получить контроль над окнами WindowsXP с помощью Java-кода, мне нужно нажать / ввести определенную кнопку / текстовое поле данного окна WindowsXP, как это сделать, есть идеи?

Подходы, которые я пробовал, следующие: (1) Я пробовал AutoIt framework, но его Java-оболочка глючит.. нестабильно.

(2) JNA можно использовать для встроенного интерфейса, используя некоторые .файл dll для достижения того же. Но я не знаю, какой именно.файл dll используется WindowsXP.

Кто-нибудь может подробнее рассказать об этом?

Я не очень представляю, какое решение намного лучше. Есть ли какая-либо лучшая платформа, доступная для такой вещи.

Спасибо.

Комментарии:

1. что именно вы хотите сделать??

2. @Neal: Мне нужно смоделировать некоторые действия в системе WindowsXP, например, если я хочу открыть блокнот, что-то написать, щелкнуть меню файл, сохранить файл и т.д…

3. не может ли пользователь сделать это самостоятельно?

4. Почему вам нужно запускать Notepad для создания текстового файла?

Ответ №1:

WindowsXP использует несколько DLL-файлов, а не один, и изучение его API подскажет вам, какой из них обладает какими функциями, а затем вы сможете использовать эту информацию в своем коде взаимодействия с JNA. Кстати, я использую AutoIt сам по себе, чтобы помочь сделать то, что вы пытаетесь сделать, и это работает нормально, и проще, чем Java с JNA, поскольку он создан для такого рода вещей. Я также использовал AutoIt с Java, заставляя Java вызывать небольшие программы AutoIt и получать простое взаимодействие через стандартные потоки ввода и вывода, учитывая советы и ловушки в этой замечательной статье: Когда Runtime.exec() не будет

Комментарии:

1. Спасибо, но AutoIt не работает, когда RDP закрыт. Или у вас есть какие-либо обходные пути, чтобы заставить AutoITscript работать на закрытом RDP?

2. @SmartSolution: Под RDP, я полагаю, вы подразумеваете протокол удаленного рабочего стола . Не могли бы вы рассказать нам подробнее о вашей проблеме? Кроме того, вы смотрели здесь? Автоматический запуск в сеансах RDP