Author Topic: Помогите устранить зависание кликера и ненужное выделение текста  (Read 1488 times)

0 Members and 1 Guest are viewing this topic.

Dreight

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Всем привет, хочу сделать: кликнуть ПКМ на "Australian", кликнуть ЛКМ на "копировать ссылку", взять ссылку из внешнего ini-файла, сравнить эти две ссылки и если они одинаковые, то написать что они одинаковые. Всё это нужно сделать в привязанном окне.

Для этого написал вот такой код:
Code: (clickermann) [Select]
RCLICK(237,418)
WAIT(3)
LCLICK(317,572)
WAIT(1)
$newlink=FROMCLIP()
$oldlink=iniread("ininame.ini", "stroka0")
if($newlink=$oldlink)
   print("одинаковые ссылки")
end_if
WAIT(1)
halt

Но с таким кодом у меня КМ от случая к случаю виснет. Как я понимаю, клика по кнопке "копировать ссылку" не происходит из-за того что основное окно браузера, к которому привязывается КМ, и окно, которое всплывает при нажатии ПКМ, это два разных окна (hwnd у них разные). И, соответственно, если у меня в буфере лежит какая-то нечитаемая гадость, то она вешает КМ.
Собственно вопрос, как делать клик во внутреннем окне?

И да, вот ещё какую интересную штуку заметил. При подобном коде:
Code: (clickermann) [Select]
RCLICK(237,418)
WAIT(3)
LCLICK(317,572)
WAIT(1)
$newlink=FROMCLIP()
$oldlink=iniread("ininame.ini", "stroka0")
if($a=$b)
   print("одинаковые ссылки")
end_if
WAIT(1)
halt

50% на 50% происходит зажатие ЛКМ в районе кнопки "копировать ссылку" и отпускается только в том месте, где у меня находится курсор (на скрине он у меня находится в красном кружке) и происходит подобное выделение текста. Собственно, я не совсем понимаю почему так происходит, объясните пожалуйста.
« Last Edit: March 30, 2018, 06:41:55 PM by Dreight »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
 да, клики в контекстное меню при привязке чего то не проходят  :-\. причем hwnd этого меню в фаерфоксе отличен от остального. но даже привязка к менюшке ничего не меняет.
 а почему именно клик? KEYPRESS(#down) отлично делает свое дело, и не зависимо от того, куда менюшка вылезет. кстати перепривязка к контекстному меню и обратно в этом случае не требуется, отрабатывает в обеих случаях.

Dreight

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Спасибо большое, буду копировать ссылку с помощью down и enter :)

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
вот, еще  немного поковырял. попробовал альтернативную привязку http://crapware.aidf.org/forum/index.php?topic=2111.0

клик срабатывает. описание в скрипте.
 данный скрипт сработает только при привязке. если привязка выключена, то в место $_hwnd нужно будет писать нужный hwnd другими способами



Code: (clickermann) [Select]
$A_press_delay=50 //продолжительность клика
//A_LCLICK   подпрограмма по отправлению  окну системного сообщения. в данном случае это клик ЛКМ
SUB(A_LCLICK, $A_x, $A_y, $A_hwnd)
   postmessage($A_hwnd,0x0201,0x0001,$A_x+($A_y*65536))
   waitms($A_press_delay)
   postmessage($A_hwnd,0x0202,0x0001,$A_x+($A_y*65536))
END_SUB

wait(1)


RCLICK(789,366)  //ПКМ, вызов меню
WAIT(3)


A_LCLICK(906,528,$_hwnd)  //клик по контекстному меню (копировать ссылку). $_hwnd - текущий hwnd привязки.

WAIT(1)

print(FROMCLIP())   //смотрим, что же там в буфере

halt

« Last Edit: March 30, 2018, 08:58:06 PM by dramster »