Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Помочь заполнить структуру

Страниц (1): [1]
 

1. Redear - 14 Февраля, 2024 - 17:18:52 - перейти к сообщению
Привет
Нужно вызвать функцию слежения за мышкой, чтобы получить сообщение, когда мышь покидает главное окно, не понимаю как заполнить структуру, чтобы заработало.

CODE:

external(INT, "TrackMouseEvent", "TrackMouseEvent", "User32.dll");

int TRACKMOUSEEVENT[4];
initialarray(#TRACKMOUSEEVENT[0], 0);
TRACKMOUSEEVENT[0]=size(#TRACKMOUSEEVENT[0]);
TRACKMOUSEEVENT[1]=2;
TRACKMOUSEEVENT[2]=gethwnd(0);

TrackMouseEvent(address(#TRACKMOUSEEVENT[0]));
2. Zireael - 14 Февраля, 2024 - 19:13:14 - перейти к сообщению
CODE:
#define TME_LEAVE 0x00000002
external(INT, "TrackMouseEvent", "TrackMouseEvent", "User32.dll");

createdialog(0);

int TRACKMOUSEEVENT[4];
initialarray(#TRACKMOUSEEVENT[0], 0);
TRACKMOUSEEVENT[0] = 16;
TRACKMOUSEEVENT[1] = TME_LEAVE;
TRACKMOUSEEVENT[2] = gethwnd(0);
TRACKMOUSEEVENT[3] = 400;

showdialog(0, "", 100, 100, 250, 300, 1, 1);
loop()sleep(10);

function getmessage(0, WM_MOUSELEAVE)
{
messagebox("Leave");
}

function getmessage(0, WM_MOUSEMOVE)
{
TrackMouseEvent(address(#TRACKMOUSEEVENT[0]));
}
3. Dantes3000 - 17 Февраля, 2024 - 08:02:14 - перейти к сообщению
CODE:
int x,y;
createdialog(0);
showdialog(0, "okno", 100, 100, 250, 300, 1, 1);
win w=window("okno");


loop()
{
getmouse(x, y);
if(formatwi(getwindow(0, x, y))!=formatwi(w)) textout(0,x,y,"left", 2);
else textout(0,x,y,"ok", 2);
sleep(10);
}
4. Zireael - 17 Февраля, 2024 - 10:05:15 - перейти к сообщению
Dantes3000, такой вариант не очень удобный, т. к. придётся постоянно отслеживать окно под курсором.
5. Dantes3000 - 19 Февраля, 2024 - 03:10:02 - перейти к сообщению
Zireael , ну везде есть свои минусы конечно. Я просто показал, что чаще всего можно обойтись функционалом кибора. Хотя в winAPI много интересного, но я и сам не умею структуры эти заполнять

Powered by ExBB FM 1.0 Final