Yount_0701 Ответов: 2

Имитация действий клавиатуры/мыши для управления программой, написанной delphi


Здесь я пытаюсь смоделировать операции над программой, написанной на delphi/pascal.После просмотра сообщения spy++ и стилей windows и класса window я выясняю , что целевая программа была написана delphi ,используя много VCL. класс управления и сообщения wm_ не являются стандартными сообщениями win32 WM_.
Кто-то сказал мне использовать delphi IDE для написания имитационного кода,о котором я понятия не имею.
Существует ли какой-либо другой метод работы целевой программы с использованием стандартных WM_ messsages Windows? лучше использовать C/C++

Что я уже пробовал:

Эти элементы управления VCL как TBitBtns / поле tedit / TComboBox и прочие данные управления доступом совместно с базой данных,эти элементы управления могут принимать только простые WM_CHAR WM_CLICK , я могу только получить Windows/элементы управления захватом / стиль / класс окна и т. д.
Стандартные элементы управления win32,такие как Edit/listbox/treeview, могут быть легко доступны, текст/столбец item info/note items. Но VCL использует sef-define WM_ msessages. Есть ли способ получить доступ к этой информации в vcl ?

2 Ответов

Рейтинг:
1

Member 4116904

Я использовал AutoHotkey для управления приложениями Delphi. Autohotkey позволяет создавать сценарии большинства взаимодействий пользователей с приложением Delphi. На входные данные можно ссылаться с помощью имен позиций или классов. Важно помнить, что Delphi создает невидимое главное окно для взаимодействия с системой обмена сообщениями windows. Это невидимое главное окно не является главным окном приложения. Поэтому, если вы хотите взаимодействовать с пользовательским интерфейсом приложения Delphi, лучше всего изучить этот дизайн приложения, чтобы вы могли достичь своей цели.
Взгляните на это https://autohotkey.com/board/topic/49125-autohotkey-and-delphi/
"Отображаемое окно обычного приложения Delphi не является главным окном. Как правило, главное окно-это окно размером 0x0 с именем класса TApplication. И отображаемое окно-это просто принадлежащее ему окно. Таким образом, если вы хотите нормально свернуть, вы должны свернуть главное окно TApplication, а не отображаемое окно. Если вы считаете, что это громоздко сделать, вы можете попробовать вместо WM_SYSCOMMAND с SC_MINIMIZE к отображаемому окну, которое должно имитировать нажатие на кнопку Свернуть. "


Рейтинг:
0

CPallini

Цитата:
Существует ли какой-либо другой метод работы целевой программы с использованием стандартных WM_ messsages Windows? лучше использовать C/C++

Конечно, есть. Однако вы, возможно, должны использовать SendInput функция для этого. Видеть:


Yount_0701

На самом деле то,что меня действительно беспокоит, - это доступ к управляющей информации, стандартные элементы управления win32, такие как listbox, могут легко получить информацию об элементах столбца, а также элементы строки. Но не VCL.