Вячеслав И.
28 сообщений
#14 лет назад
Есть DirectX игра!
Как программно кликнуть по нужному контролу (не открывая окно игры) зная его координаты X, Y?
Ярослав С.
778 сообщений
#14 лет назад
Средствами DirectX перехватывая контекст игры. Как вариант. Хотя в Дельфи такой вариант будет конечно проблематично реализовать...
Евгений О.
2989 сообщений
#14 лет назад
Щелкнуть мышью не сложно

x, y - координаты
sendmessage(Handle,WM_LBUTTONDOWN,MK_LBUTTON,x+(y shl 16));
sendmessage(Handle,WM_LBUTTONUP,MK_LBUTTON,x+(y shl 16));

или так
var
Pt : TPoint;

{Get the point in the center of Button 2}
Pt.x := Button2.Left + (Button2.Width div 2) ;
Pt.y := Button2.Top + (Button2.Height div 2) ;
{Convert Pt to screen coordinates and Mickeys}
Pt := ClientToScreen(Pt) ;
Pt.x := Round(Pt.x * (65535 / Screen.Width)) ;
Pt.y := Round(Pt.y * (65535 / Screen.Height)) ;
{Simulate the mouse move}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or
MOUSEEVENTF_MOVE,
Pt.x, Pt.y, 0, 0) ;
{Simulate the left mouse button down}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or
MOUSEEVENTF_LEFTDOWN,
Pt.x, Pt.y, 0, 0) ;;
{Simulate the left mouse button up}
Mouse_Event(MOUSEEVENTF_ABSOLUTE or
MOUSEEVENTF_LEFTUP,
Pt.x, Pt.y, 0, 0) ;

Вопрос, как это будет работать под DirectX...
Николай М.
1895 сообщений
#14 лет назад
В DirectX такой код не сработает, он кликнет, но только вот по рабочему столу)

Вам нужно копать с торону DirectInput