Конференция "WinAPI" » Перемещение объектиа [D7, WinXP]
 
  • oleg_teacher (27.10.13 12:05) [0]
    Господа присяжные заседатели, необходима Ваша помощь в решении проблемы.
    Мне необходимо в чужом окне захватить элемент и переместить за другими координатами того же окна.
    Вот собственно часть кода:

    Pt.x:=75;
    Pt.Y:=325;
    Pt := ClientToScreen(Pt);
    SendMessage(wnd,WM_Move,0,(Pt.x shl 16)+ Pt.y);
    SendMessage(wnd,WM_LBUTTONDOWN, 0,(Pt.x shl 16)+ Pt.y);
    Pt2.X:=320;
    Pt2.Y:=564;
    Pt2 := ClientToScreen(Pt2);
    SendMessage(wnd,WM_Move, 0,(Pt2.x shl 16)+ Pt2.y);
    SendMessage(wnd,WM_LBUTTONUP, 0,(Pt2.x shl 16)+ Pt2.y);


    Я продублировал свои же действия -
    1. Перемещение на нужную координату.
    2. Зажимание левой клавиши мыши.
    3. Перемещение координаты в нужную позицию. (с объектом)
    4. Отпускание мыши.
    Но, почему то 4 не происходит, то есть объект не становится в нужную область. Когда я выполняю без //SendMessage(wnd,WM_LBUTTONUP, 0,(Pt2.x shl 16)+ Pt2.y)
    реально объект находится под курсором...
  • RWolf © (27.10.13 14:11) [1]
    Такие вещи, помнится, обычно через mouse_event делали.
    Сейчас оно deprecated в пользу SendInput.
  • oleg_teacher (27.10.13 14:31) [2]
    RWolf ©
    Может и так, только насколько я понимаю mouse_event делает для глобального курсора. Если прога в фоне или свернута - это действовать не будет. Мне же в фоне нужно.
    Тут же для mouse_event  нигде не указывается окно в котором нужно делать, в отличии от SendMessage(wnd....
  • DVM © (27.10.13 15:01) [3]

    > oleg_teacher   (27.10.13 12:05) 

    Что за "объекты" ты там перемещаешь с помощью WM_MOVE? Это сообщение есть лишь уведомление для ОКНА что его (ОКНО) переместили. Реально окно может его и игнорировать как и любое другое сообщение. Это не сообщение перемещения мыши. Тебе если что и нужно, то WM_MOUSEMOVE.
  • oleg_teacher (27.10.13 15:50) [4]
    при смене WM_MOUSEMOVE - эффект тот же - переместилося в нужную позицию, но почему то WM_LBUTTONUP не сработал((. Это пробую писать для себя бот для игры. Объекты - это элементы в флеше...
  • DVM © (27.10.13 16:26) [5]

    > oleg_teacher   (27.10.13 15:50) [4]


    > переместилося в нужную позицию, но почему то WM_LBUTTONUP
    > не сработал

    а как ты понимаешь сработал или не сработал?

    Предложение такое. Берешь SPY++, перемещаешь объект руками, смотришь какие сообщения и в какой последовательности посылались окну. Воспроизводишь последовательность. Только может оказаться что только сообщений недостаточно, например, окно может проверять свернуто оно или нет.
  • oleg_teacher (27.10.13 16:54) [6]

    > а как ты понимаешь сработал или не сработал?

    а видно... объект который я перемещаю зависает над полем - куда ему нужно переместиться.. но там он не фиксируется... так как почему то WM_LBUTTONUP  наверное не срабатывает, хотя странно((
    вот принтскрин http://clip2net.com/s/62R6KW
  • oleg_teacher (01.11.13 16:24) [7]
    нет предложений в какую сторону копать? Подскажите пж. просто столкнулся с непониманием((
 
Конференция "WinAPI" » Перемещение объектиа [D7, WinXP]
Есть новые Нет новых   [134427   +35][b:0][p:0.001]