Author Topic: Postmessage для x64  (Read 1621 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Postmessage для x64
« on: July 31, 2020, 11:38:59 PM »
Друзья, помогите разобраться!

Я так понимаю, чтот скрипт это для 32 разрядной системы. А для Win 64?
Code: (clickermann) [Select]
$WM_LBUTTONDOWN = 0x0201 // Левая кнопка мыши нажата.
$WM_LBUTTONUP = 0x0202 // Левая кнопка мыши отпущена.
$MK_LBUTTON = 0x0001 // Левая кнопка мыши находится в нажатом состоянии.
 
$HWND = 196784 // изменяется при каждом запуске целевой программы,
                 // нужно каждый раз вписывать заного
 
$x = 279 // Координата по X
$y = 112 // Координата по Y
 
//Отправляем сообщение окну о нажатой левой кнопке мыши
postmessage($HWND, $WM_LBUTTONDOWN, $MK_LBUTTON, $x + ($y*65536))
 
//Мало-мало ждем, а можно и вообще не ждать,
//   т.к. сообщения уходят в список и выполняются по порядку
waitms(50)
 
//Отправляем сообщение окну, что левую кнопку мыши отпустили
postmessage($HWND, $WM_LBUTTONUP, $MK_LBUTTON, $x + ($y*65536))
 
// Завершаем программу
halt

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

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

Oraven

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

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Re: Postmessage для x64
« Reply #2 on: August 01, 2020, 11:26:57 AM »
Разрядность тут не причем.
Проверил у себя (Win 10 Pro 64bit) указал HWND  окна браузера, координату кнопки на странице (полученную в оконном режиме), запустил, и кнопка нажалась.

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

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

Скрипт должен нажать кнопку в Excel, чтобы фраза "Привет, Мир!" Стала красной.
Code: (clickermann) [Select]
$WM_LBUTTONDOWN = 0x0201 // Левая кнопка мыши нажата.
$WM_LBUTTONUP = 0x0202 // Левая кнопка мыши отпущена.
$MK_LBUTTON = 0x0001 // Левая кнопка мыши находится в нажатом состоянии.

$x = 277
$y = 113
postmessage(WNDFIND("Тест.xlsx - Excel"), $WM_LBUTTONDOWN, $MK_LBUTTON, $x + ($y*65536))
waitms(50)
postmessage(WNDFIND("Тест.xlsx - Excel"), $WM_LBUTTONUP, $MK_LBUTTON, $x + ($y*65536))

HALT

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