Автор Тема: Postmessage для x64  (Прочитано 76 раз)

0 Пользователей и 1 Гость просматривают эту тему.

SimplY

  • Освоившийся
  • **
  • Сообщений: 68
    • Просмотр профиля
Postmessage для x64
« : Июль 31, 2020, 11:38:59 pm »
Друзья, помогите разобраться!

Я так понимаю, чтот скрипт это для 32 разрядной системы. А для Win 64?
Код: Clickermann
  1. $WM_LBUTTONDOWN = 0x0201 // Левая кнопка мыши нажата.
  2. $WM_LBUTTONUP = 0x0202 // Левая кнопка мыши отпущена.
  3. $MK_LBUTTON = 0x0001 // Левая кнопка мыши находится в нажатом состоянии.
  4.  
  5. $HWND = 196784 // изменяется при каждом запуске целевой программы,
  6.                 // нужно каждый раз вписывать заного
  7.  
  8. $x = 279 // Координата по X
  9. $y = 112 // Координата по Y
  10.  
  11. //Отправляем сообщение окну о нажатой левой кнопке мыши
  12. postmessage($HWND, $WM_LBUTTONDOWN, $MK_LBUTTON, $x + ($y*65536))
  13.  
  14. //Мало-мало ждем, а можно и вообще не ждать,
  15. //   т.к. сообщения уходят в список и выполняются по порядку
  16. waitms(50)
  17.  
  18. //Отправляем сообщение окну, что левую кнопку мыши отпустили
  19. postmessage($HWND, $WM_LBUTTONUP, $MK_LBUTTON, $x + ($y*65536))
  20.  
  21. // Завершаем программу
  22. halt

С этим то разобрался. Вставил свой HWND и координаты, но у меня x64! Как быть?

И есть MSDN на русском, где всё описано?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3684
  • Котэ
    • Просмотр профиля
Re: Postmessage для x64
« Ответ #1 : Август 01, 2020, 07:50:51 am »
Разрядность тут не причем.
Проверил у себя (Win 10 Pro 64bit) указал HWND  окна браузера, координату кнопки на странице (полученную в оконном режиме), запустил, и кнопка нажалась.

SimplY

  • Освоившийся
  • **
  • Сообщений: 68
    • Просмотр профиля
Re: Postmessage для x64
« Ответ #2 : Август 01, 2020, 11:26:57 am »
Разрядность тут не причем.
Проверил у себя (Win 10 Pro 64bit) указал HWND  окна браузера, координату кнопки на странице (полученную в оконном режиме), запустил, и кнопка нажалась.

Тогда у меня в упор не получается. Просто никаких действий в окне.

Скрины
http://skr.sh/s3ROmvn834V
http://skr.sh/s3RME1yLe2N

Скрипт должен нажать кнопку в Excel, чтобы фраза "Привет, Мир!" Стала красной.
Код: Clickermann
  1. $WM_LBUTTONDOWN = 0x0201 // Левая кнопка мыши нажата.
  2. $WM_LBUTTONUP = 0x0202 // Левая кнопка мыши отпущена.
  3. $MK_LBUTTON = 0x0001 // Левая кнопка мыши находится в нажатом состоянии.
  4.  
  5. $x = 277
  6. $y = 113
  7. postmessage(WNDFIND("Тест.xlsx - Excel"), $WM_LBUTTONDOWN, $MK_LBUTTON, $x + ($y*65536))
  8. waitms(50)
  9. postmessage(WNDFIND("Тест.xlsx - Excel"), $WM_LBUTTONUP, $MK_LBUTTON, $x + ($y*65536))
  10.  
  11. HALT

Подкажите пожалуйста, что не так? Он даже не наводит на эту кнопку. Я навел вручную.
« Последнее редактирование: Август 01, 2020, 11:29:10 am от SimplY »