|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите. Не работает sendMessage
Вот моя иммитация нажатия кнопки мышки в абсолютной координате 100,100.
Код:
sendMessage(hwnd, WM_MOUSEMOVE , 0, 100 + 100 shl 16); sendmessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, 100 + 100 shl 16); sendmessage(hwnd, WM_LBUTTONUP, MK_LBUTTON, 100 + 100 shl 16); И представьте себе на одном компьютере работает а на другом компьютере не работает. Невероятно но факт. Ума не приложу. Не могу понять почему ? Помогите пожалуста . Кто нибудь встречал подобную проблемму и нашёл решение ? |
#2
|
||||
|
||||
А не хотите так сделать?
Код:
procedure TForm1.Button2Click(Sender: TObject); var Pt: TPoint; begin {Позволим кнопке Button2 перерисоваться} Application.ProcessMessages; {Найдем координаты центра button 1} Pt.x := Button1.Left + (Button1.Width div 2); Pt.y := Button1.Top + (Button1.Height div 2); {Преобразуем Pt к координатам экрана} Pt := ClientToScreen(Pt); {Преобразуем Pt к "mickeys" (аболютным координатам курсора мышки} Pt.x := Round(Pt.x * (65535 / Screen.Width)); Pt.y := Round(Pt.y * (65535 / Screen.Height)); {Переместим курсор мыши} Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0); {Имитируем нажатие левой кнопки мыши} Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, Pt.x, Pt.y, 0, 0); {Имитируем отпускание левой кнопки мыши} Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, Pt.x, Pt.y, 0, 0); end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Нужна помощь.
Делал и по твоему . Так же получаеться 2 -3 раза сработает нажатие и после перестаёт нажимать. на одном компьютере замечательно работает на другом не работает.
|
#4
|
|||
|
|||
Я думаю проблема в слабом железе. Не успевает обработать просто. Вешай sleep(100) после каждого нажатия.
Да, и винда какая? Люблю спать, пить пиво за компом, день зарплаты... И что бы все работало само по себе. |
#5
|
|||
|
|||
Помощь.
Цитата:
Компьютер 4-х ядерный, Windows 7-я. Компьютер мощный, а вот в чём причина ? Может кто знает, плавал ? |
#6
|
|||
|
|||
А где все работает стоит ХР или тоже семерка?
Это я к тому, что седьмая лагать может на этом коде.. Люблю спать, пить пиво за компом, день зарплаты... И что бы все работало само по себе. |