Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Dr_midon

Pages: [1] 2
1
Предлагаю добавлять к темам приставку, которая будет отражать состояние темы. Когда автор вопроса доволен ответом он должен поставить приписку вначале темы, что ответ(ы) его устроили.

Думаю, что не каждый может ежедневно просматривать все темы. А раз в неделю зайти и начать перечитывать, чтоб найти еще не решенные достаточно муторно. Гораздо проще пройтись по темам без приставок и помочь, особенно если сам в теме разбираешься(либо подсказать автору, что нужно добавить приставку к названию темы).

2
Если очень хочется, то можно все. Вот, например:
http://stackoverflow.com/questions/11384669/sending-right-altc-with-postmessage
Quote
Yes, it's possible using PostMessage. I used program Spy++ (it's inside Visual Studio or you can download it http://mdb-blog.blogspot.com/2010/11/microsoft-spy-or-spyxx-for-download.html) I runed notepad.exe and Spy++, and used Function FindWindow to handle this notepad. Then I used Spy->LogMessages, in Tab Messages I cleared all and stay checkbox Keyboard and in output I checked Raw Message Parameters.

Then in notepad i pressed alt+1 and I noted values from Window Messages. I known now, where use WM_KEYDOWN, WM_KEYUP, WM_SYSKEYUP etc. and value lParam, wParam.


Вольный перевод:
Quote
Да, возможно использовать PostMessage. Я Использовал программу Spy++ (она входит в состав Visual Studio или можно скачать ее тут http://mdb-blog.blogspot.com/2010/11/microsoft-spy-or-spyxx-for-download.html). Я запустил Блокнот(далее NOTEPAD) и Spy++. Затем использовал функцию FindWindow для определения адреса NOTEPAD. Далее использовал меню Spy->LogMessages, на вкладке Messages убрал все чекбоксы, оставив только Keyboard, а на вкладке Оutput поставил галочку возле Raw Message Parameters.

Нажав в NOTEPAD alt+1 я записал значения из Window Messages. Теперь я знал, где нужно использовать WM_KEYDOWN, WM_KEYUP, WM_SYSKEYUP и т.д. и значения lParam, wParam.

3
Вангую, что Вы хотите нажимать клавишу на клавиатуре, а не на мышке. Тогда предлагаю прочитать перевод на русский MSDN на эту тему: http://www.transl-gunsmoker.ru/2010/06/postmessage.html

4
http://crapware.aidf.org/forum/index.php?topic=33.msg562#msg562
Вроде достаточно подробно все описывал

5
Использование / Re: BenchMark Test
« on: November 15, 2012, 04:43:36 PM »
1. Исходя из какой банально-бытовой эрудиции рядовой (читай массовый) пользователь, слабо знакомый с основами программирования, может выбрать подходящую  паузу скажем  после  команды  гетскрин, или иф_пискель_ин?

Какую категорию он может отнести паузу после своей функции

Давай рассуждать логически:
1. Пауза нужна для разгрузки процессора
2. Пауза нужна для обработки действий программой/игрой

Соответственно первому пункту можно выбирать любое понравившееся значение.
Например:
- Игрушка требует клика мышкой каждые 40 сек. Значит ставим WAIT(40), или даже 41 секунду. Хотя можно было бы и без паузы непрерывно кликать, правда эффекта никакого не получилось, кроме загрузки машины(читай CPU). Думаю тут нет сложности.
- После клика ожидаем обновления экрана. Задачка посложнее, но все же: предполагаем худшее, т.е. модемное соединение и компьютер пяти-десяти годовалой давности. Проверку на появление нужного нам элемента на страничке можно осуществлять и без паузы, но тогда и она грузиться дольше будет и тормозить компьютер начнет очень заметно. Значит выставляем паузу между проверками в зависимости от скорости прогрузки странички: 2-5 секунд. Логика: перед автоматизацией мы кликали вручную и в голове должно было уложится, что страничка грузится ~3 сек, значит и проверку делаем каждые 3 сек. Или грузилась ~10 сек - ставим 10 сек паузы перед проверкой.

Для второго пункта также можно логически расписать цепочку действий(своих и/или программы)
Например:
- После ввода символа мы не ощущаем задержки, значит пауза не нужна(у нас сильный комп)
- После ввода символа мы ощущаем некоторую задержку, значит ставим паузу 100-500 мс для наглядности и отсечения некоторых ошибок еще на стадии разработки.(хоть она и не сильно нужна, т.к. все действия записываются в стек-список и выполняются по порядку)

6
Использование / Re: BenchMark Test
« on: November 14, 2012, 12:12:39 PM »
Углубляемся:
К-ман создан для того, чтоб рутинные операции выполнялись автоматически. Это значит, что мы изначально предполагаем, сколько времени затрачивается на ту или иную операцию.

Например:
Клацаю мышкой на ссылку, жду пока загрузится страничка в браузере. Обратно кликаю на ссылку, опять жду. Рутина? Рутина! Можно это действие автоматизировать? Можно!

Практика:
1. Навожу мышкой на ссылку. Не клацаю, а смотрю координаты и записываю а редакторе кода LCLICK(x,y) или ALT+Q.
2. Затем засекаю, сколько понадобится времени на переваривание этой операции браузером. Дополняю код в редакторе скрипта строчкой WAIT(сколько секунд ждали + еще столько же на всякий случай). Все, скрип готов.

Итог:
Я не могу сказать, сколько понадобилось времени ожидания для написания второй строчки кода. И по этому не могу точно сказать, что пишем  LCLICK(x,y), а за ним обязательно ставим паузу в 2 секунды WAIT(2). И это относится ко всем участникам этого форума. Есть случаи, когда клик обрабатывается мгновенно и не приходится ожидать(например флеш игра). А есть и когда приходится ждать не одну минуту(браузерная игра с обновлением всей странички каждый клик при зависшем интернете). Как тогда быть? Написать: ставь после LCLICK(x,y) ожидание в 5 секунд будет не справедливым, хотя и в 99% будет точным.

Эпилог
Думать надо своей головой, даже, когда копи-пастом пишем скрипты. Если чего-то не получается - это тоже результат, хоть и отрицательный. Лингвисты тоже получают зарплату и тратят деньги и как следствие умеют считать. А значит и в них есть зачатки математика(технаря/программиста). Достаточно их развивать. Нельзя делить людей на гуманитариев и технарей / черное и белое / зло и добро  :P

7
Использование / Re: BenchMark Test
« on: November 14, 2012, 11:24:27 AM »
Давай рассуждать логически:
1. Пауза нужна для разгрузки процессора т.е. если чего-то ждем(обновления экрана / нажатия кнопки пользователем / HTTP ответа от сервера и пр.), то можно проверять не каждый цикл, а тормозиться на несколько долей или даже целых секунд.
2. Пауза нужна для обработки действий программой/игрой с которой мы работаем(у меня достаточно мощный комп и не нужно такого делать, а у другого человека послабее и ему нужны задержки, чтоб игрушка могла переварить клики)

Исходя из этого выбираем длительность паузы в зависимости от производительности компьютера, на котором скрипт будет работать и в зависимости от тормознутости игры/интернета и прочего, с чем приходится работать кликерману. Расставляем паузы в затяжных операциях: например циклах, которые превышают 100 и более повторений. Чтоб не было эффекта зависания. А также после кликов и нажатий клавиш.

8
Ошибки / Re: Непонятки
« on: November 10, 2012, 03:16:10 AM »
В хроме у меня все норм, а Mozilla Firefox через привязку не видит ничего. И в обоих ничего не мигает, на главной странице. Даже без панелей меню. Потаскал кликерман в режиме привязки в Mozilla Firefox и о чудо  :o он перестал прорисовываться. Причем сразу, как только потащил окно залилось картинкой заднего плана. Т.е. вместо панелей кликера рисуется задний план. Причем переодически обновляется, всмысле картинка заднего плана прямо на нем перерисовывается, но не по времени, а хз как. Зависимостей не обнаружил: то каждую секунду, а то и по 5-10 сек не обновляется. Чем дальше я его отвожу от предыдущего места тем больше вероятности перерисовки... как-то так

В обычном режиме: не в редакторе - все норм. Таскаю без проблем. Даже с привязкой

9
Кнопки действуют(влево/вправо/пробел/Esc/Enter)?
Если да, то:

1)KEYPRESS (keycode) - нажимает и отпускает виртуальную клавишу клавиатуры
Параметры
keycode - числовое значение клавиши, константа или переменная
Но нужно привязку к окну использовать

или

2)PostMessage($hWnd, $WM_KEYDOWN, #ENTER, 0 )
PostMessage($hWnd, $WM_KEYUP, #ENTER, 0 )

10
Ошибки / Re: Непонятки
« on: November 10, 2012, 01:50:43 AM »
Не моргает, по крайней мере на главной странице без меню и регистрации. У меня Windows XP. Но и захват картинки через привязку к окну не делается  :o . Как только жму ALT+W сразу картинка пропадает. Возможно все из-за графического движка флэхи... Там сейчас можно и 3D, и шейдеры делать(http://alternativaplatform.com/ru/showcase/), и устройство вывода картинки по другому задается. Можешь свое видео попробовать посмотреть через лупу кликермана - тоже не будет отображаться.

По существу: я так понял, что ты не привязывался к окну из-за черного фона. Значит придется заменять все значения кликов, чтоб панель меню включить. Предлагаю ввести тебе коррекционную переменную. Можно сделать обычной заменой или по регулярным выражениям. Заменять LCLICK(30,226) на LCLICK($xoffset+30, $yoffset+226). Затем можно в начале скрипта поставить ее значения.

11
Если программа статичная - кнопки по форме не бегают то можно поступить так:
http://clickermann.tk/forum/index.php?topic=33.msg660#msg660

12
Жаль нет у форума сворачивающихся блоков, так бы туда все переписал.
Нашел следующее на японском сайте, но думаю проблем с языком не возникнет  ;D
messages: http://www1.u-netsurf.ne.jp/~ozawa/prog/event/message.html

Еще нужны запросы пользователя (wParam):
Code: [Select]
     WM_VSCROLL                          WM_HSCROLL
--------------------------------------------------------
SB_LINEUP        = 0                SB_LINELEFT      = 0
SB_LINEDOWN      = 1                SB_LINERIGHT     = 1
SB_PAGEUP        = 2                SB_PAGELEFT      = 2
SB_PAGEDOWN      = 3                SB_PAGERIGHT     = 3
SB_THUMBPOSITION = 4                SB_THUMBPOSITION = 4
SB_THUMBTRACK    = 5                SB_THUMBTRACK    = 5
SB_TOP           = 6                SB_LEFT          = 6
SB_BOTTOM        = 7                SB_RIGHT         = 7
SB_ENDSCROLL     = 8                SB_ENDSCROLL     = 8

Кроме того не стоит забывать, что
http://msdn.microsoft.com/ru-ru/library/windows/desktop/bb787575(v=vs.85).aspx

The WM_HSCROLL message is sent to a window when a scroll event occurs in the window's standard horizontal scroll bar. This message is also sent to the owner of a horizontal scroll bar control when a scroll event occurs in the control.

wParam
The HIWORD specifies the current position of the scroll box if the LOWORD is SB_THUMBPOSITION or SB_THUMBTRACK; otherwise, this word is not used.
The LOWORD specifies a scroll bar value that indicates the user's scrolling request. This word can be one of the following values.
SB_ENDSCROLL
SB_LEFT
SB_RIGHT
SB_LINELEFT
SB_LINERIGHT
SB_PAGELEFT
SB_PAGERIGHT
SB_THUMBPOSITION
SB_THUMBTRACK

lParam
If the message is sent by a scroll bar control, this parameter is the handle to the scroll bar control. If the message is sent by a standard scroll bar, this parameter is NULL.

Вольный перевод:
WM_HSCROLL сообщение отправляется в окно, когда событие scroll происходит в горизонтальной полосе прокрутки окна. Это сообщение также отправляется владельцу горизонтальной полосы прокрутки при возникновении события scroll в элементе управления.

WPARAM
HIWORD определяет положение полосы прокрутки, если LOWORD берется значение SB_THUMBPOSITION или SB_THUMBTRACK, в противном случае это слово не используется.
LOWORD указывает запрос пользователя. Это слово может быть одним из следующих значений.
SB_ENDSCROLL
SB_LEFT
SB_RIGHT
SB_LINELEFT
SB_LINERIGHT
SB_PAGELEFT
SB_PAGERIGHT
SB_THUMBPOSITION
SB_THUMBTRACK

lParam
Если сообщение отправляется и полосе прокрутки, lParam является дескриптором управления полосы прокрутки. Если сообщение не отправляется полосе прокрутки, lParam имеет значение NULL

13
Ошибки / Re: Непонятки
« on: November 09, 2012, 06:27:03 PM »
Аналогично.
Даже написав:
$HWnd = WNDFIND ("Калькулятор", 1)
он не найдет WinXP`шный "Калькулятор Плюс"

14
Ошибки / Re: Непонятки
« on: November 09, 2012, 06:11:47 PM »
1. Название окна точное?
2. В шапке окна так написано?
3. Остальных символов там нет? Типа: Explorer С:\WINDOWS\
4. Используй InqSoft Window Scanner 1.7, для проверки себя.
http://clickermann.tk/forum/index.php?topic=42.msg572#msg572

15
Просто все молчат(не видел отчета об этой фишке)  :o, вот и давно. Я вообще думал, что это только у меня одного. Перерисовывается норм, при любом сообщении окну, даже если за границы экрана вытащить и обратно переместить. Там, видимо, нужно в Class вставить отрисовку редактора после нажатия CTRL+V(на событие OnKeyUp с проверкой, какие клавиши были нажаты) и эффект пропадет.

Pages: [1] 2