#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