Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Cyc on January 11, 2015, 09:42:06 PM
-
GETSCREEN
IF_PICTURE_IN (0,0, 1360,670,"1.bmp")
LCLICK($_return1, $_return2)
WAIT(RND(1,3))
ELSE
IF_PICTURE_IN (0,0, 1365,130, "2.bmp")
LCLICK($_return1, $_return2)
WAIT(RND(1,3))
ELSE
LCLICK(1790,365)
waitms(55)
LCLICK(1790,365)
keydown(#ctrl)
waitms(99)
keypress(#c)
keyup(#ctrl)
wait(1)
GETSCREEN
$lov=fromclip()
if($lov>5)
print("проверяю ловкость",$lov)
IF_PICTURE_IN (0,0, 1190,400, "3.bmp")
LCLiCK($_return1, $_return2)
wait(1)
end_if
Вот такая часть скрипта, в определенных координатах нажимает и копирует в буфер если скопированное число меньше 5 нажимает на картинку 3.
Вопрос заключается вот в чём если окно привязать то оно не хочет этого делать в чём проблема?
з.ы.: Раньше создавая\отвечая можно было выбрать параметры текста, коды, цитаты сейчас же окно стандартное и не чего такого делать нельзя. Я как то изменил оформление форума? Уж больше не удобное прописывать коды кликермена, цитаты, смайлы ручками ;(
-
При привязке не работают зажатия клавиш
keydown(#ctrl)
waitms(99)
keypress(#c)
keyup(#ctrl)
будет нажиматься ctrl а потом с но не вместе.
з.ы.: Раньше создавая\отвечая можно было выбрать параметры текста, коды, цитаты сейчас же окно стандартное и не чего такого делать нельзя. Я как то изменил оформление форума? Уж больше не удобное прописывать коды кликермена, цитаты, смайлы ручками ;(
Может глюк? Попробуй сбросить кеш
-
чистка кеша помогла, спасибо.
То есть скопировать в буфер не получится при привязке ;(
То есть вариант в привязанном окне остаётся 1. Создать картинки с цифрами их то по сути цифр этих то и не много от 3-23, грубо говоря создать 20 бмп файлов и что б он их перебирал, то есть если данная картинка найдена нажимаем картинку 1, если нет то 2. Вопрос тогда в другом. Такой перебор как бы будет подгружать программу или не сильно? В общем стоит таким заморачиватся или проще поставить виртуалку?
-
В оконном режиме может сработать использование функции POSTMESSAGE
POSTMESSAGE ($_hwnd, 0x0100, 0x11, 0) //нажал Ctrl
WAITMS(50)
POSTMESSAGE ($_hwnd, 0x0100, 0x43, 0) //нажал C
WAITMS(50)
POSTMESSAGE ($_hwnd, 0x0101, 0x43, 0) //отпустил C
WAITMS(50)
POSTMESSAGE ($_hwnd, 0x0101, 0x11, 0) //отпустил Ctrl
WAITMS(50)
-
В оконном режиме может сработать использование функции POSTMESSAGE
POSTMESSAGE ($_hwnd, 0x0100, 0x11, 0) //нажал Ctrl
WAITMS(50)
POSTMESSAGE ($_hwnd, 0x0100, 0x43, 0) //нажал C
WAITMS(50)
POSTMESSAGE ($_hwnd, 0x0101, 0x43, 0) //отпустил C
WAITMS(50)
POSTMESSAGE ($_hwnd, 0x0101, 0x11, 0) //отпустил Ctrl
WAITMS(50)
SENDMESSAGE / POSTMESSAGE (hwnd, message, wParam, lParam) - посылает окну системное сообщение
Я походу твердолобый не могу понять. Что в данном случае 0х0100, 0х43 и для чего нам 0 в конце. В интсрукции не 4.10 не чего толком не описано про этот postmessage, а в 4.11 который я использую у меня вообще нету (.
$_2244 ну окно как бы, а дальше что цифры обозначают?
-
Вот тебе более понятный пример с использованием переменных
$HWND = $_hwnd // записываем текущий HWND
$KEYDOWN = 0x0100 //WM_KEYDOWN message
$KEYUP = 0x0101 //WM_KEYUP message
$w = 0x57 // 16-ный код клавиши W
POSTMESSAGE ($HWND, $KEYDOWN, $w, 0) //нажал
WAIT(1)
POSTMESSAGE ($HWND, $KEYUP, $w, 0) //отпустил
WAIT(1)
HALT
-
Вот тебе более понятный пример с использованием переменных
$HWND = $_hwnd // записываем текущий HWND
$KEYDOWN = 0x0100 //WM_KEYDOWN message
$KEYUP = 0x0101 //WM_KEYUP message
$w = 0x57 // 16-ный код клавиши W
POSTMESSAGE ($HWND, $KEYDOWN, $w, 0) //нажал
WAIT(1)
POSTMESSAGE ($HWND, $KEYUP, $w, 0) //отпустил
WAIT(1)
HALT
Который раз пытаюсь заставить нормально работать POSTMESSAGE. И который раз нет окончательного ответа.
В подобном примере у меня не работает. Точнее происходит два нажатия.
Я так понял с Iparam нужно "поработать", для $KEYUP 1,30 и 31 бит должны быть включены.
Получается 0xC0000001, но при этом значении POSTMESSAGE выдаёт ошибку интерпритации. Если на символ короче-всё нормально. Может там не докрутили чего?
И уже надцатый раз рою сеть на предмет Shift+, Ctrl+ в POSTMESSAGE. Все пробованные варианты не работают.
Давайте новую тему создадим и добъём, а?
-
Который раз пытаюсь заставить нормально работать POSTMESSAGE. И который раз нет окончательного ответа.
В подобном примере у меня не работает. Точнее происходит два нажатия.
Я так понял с Iparam нужно "поработать", для $KEYUP 1,30 и 31 бит должны быть включены.
Получается 0xC0010001, но при этом значении POSTMESSAGE выдаёт ошибку интерпритации. Если на символ короче-всё нормально. Может там не докрутили чего?
И уже надцатый раз рою сеть на предмет Shift+, Ctrl+ в POSTMESSAGE. Все пробованные варианты не работают.
Давайте новую тему создадим и добъём, а?
поддерживаю, создавал тему когдато http://crapware.aidf.org/forum/index.php?topic=1124.0 . некто ничего пояснить несмог. таже проблема с Shift+, Ctrl+ . я уже искал может есть команда какая - копировать, вставить,... перебрал кучу вариантов, ничего не вышло. опять же повторюсь, что в игре, например мта-са, нажатия и отпускания кнопок происходит правильно, сказал нажать - нажмет, и не отпустит пока не скажу. в остальных случаях нажатия происходят и на кейдаун и на кейап(например блокнот). неможет такого быть, чтоб никто неразбирался в этих message, wParam, lParam. возможно, если создать тему (и привязать ее), то найдутся знатоки, которые подробно опишут всё. неужели никому неинтересно?! возможно с помощю POSTMESSAGE можно зделать кучу всякого интересного.
хочу добавить, что в км в POSTMESSAGE в wParam можно писать код клавиши в виде константы, напр #ENTER, #w, #1. и команда понимат их.
POSTMESSAGE ($_hwnd, 0x0100, #w, 0) //нажал
WAIT(1)
POSTMESSAGE ($_hwnd, 0x0101, #w, 0) //отпустил
WAIT(1)
HALT
-
На счет вставить вот
// Вариант 1 (работает не всегда)
TOCLIP ("Тест") // текст в буфер
SENDMESSAGE ($_hwnd, 0x0302, 0, 0) // вставить
halt
// Вариант 2 (через временное отключения оконного режима)
TOCLIP ("Тест")
WAITMS (50)
$hwnd = $_hwnd
HSET ($hwnd,0)
KEYDOWN (#CTRL)
HSET ($hwnd,1)
WAITMS (20)
KEYPRESS (#V)
HSET ($hwnd,0)
KEYUP (#CTRL)
HSET ($hwnd,1)
halt
-
Ну вставить через WM_PASTE = 0x0302 я давно нашёл. Ctrl не только для этого нужен. А Shift так нужен позарез.
В блокнот правда удаётся послать в верхнем регистре через CHAR
$CHAR = 0x0102 // WM_CHAR
$h = 0x48
POSTMESSAGE ($HWND, $CHAR , $h, 0)
А через $KEYDOWN - в нижнем. Но тоже это как-то не по людски. А вот с принятием Iparam для KEYUP точно какой-то косяк.
-
когда писал коды символов для A_KEYSTRING , использовал вот такую штуку
//wm -102
//wp
//3 - copy
//22 - paste
//24 - cut
//26 - отмена ctrl+z
$hwnd = 1383338 //hwnd текст.поля, блокнота
wait(1)
FOR($a=1,$a<256)
// KEYSTRING($a)
// KEYPRESS(#enter)
// waitms(100)
postmessage($hwnd,0x0102,$a,0)
waitms(100)
// KEYPRESS(#enter)
END_CYC
halt
что мы видим в блокноте:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
и мы видим что с помощью CHAR, отправляются символы как латинские, так и не очень (не совсем понимаю эти все кодировки), как в верхнем так и в нижнем регистре.
но, самое главное, что wparam от 1 до 33 отправляет блокноту всяческие команды. было обноружено следующее:
//wparam
//3 - copy
//22 - paste
//24 - cut
//26 - отмена ctrl+z
жаль конечно, что это работает только в блокноте :D