Непокорный курсор!

Тема в разделе "WASM.BEGINNERS", создана пользователем TOLSTOPUZ, 3 май 2008.

  1. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Помогите покорить курсор.
    Он меня уже довёл, так сказать...

    Короче мне тут понадобилась простенькая программка
    которая тупо кликает через каждую минуту в определённую точку страницы сайта.
    Это мне нужно для того, чтобы я всегда был "онлайн" на неком форуме...
    (не на этом... :)

    Короче, вот код
    Метка sit навечно зацикливает нажатие левой мышки
    в определённой точке экрана Х-15,Y-15

    sit:
    invoke SetCursorPos,15,15 ; навожу курсор на координаты 15,15

    invoke mouse_event, MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 ;щёлкаю левой мышкой
    invoke mouse_event, MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 ;отпускаю левую мышку
    invoke Sleep,300000 ;пауза 300 секунд
    Loop sit ; возврат и ышо раз щёлкаем...

    Всё это работает...

    Но на другом сайте координаты кнопки обновления не 15,15 а в другом месте!

    Я ессно решил сделать координаты переменными,
    чтобы использовать эдитбокс

    curs1 db 15
    curs2 db 15

    Но при выполнении кода
    invoke SetCursorPos,addr curs1,addr curs2

    курсор помещается не в левый верхний угол экрана,
    а В ПРАВЫЙ НИЖНИЙ АЖ ЗА ЧАСЫ, БЛИН!!!
    ВОПРОС, КАКОГО ЕМУ НУЖНО?

    С уважением, толстопуз!
     
  2. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    блин, ты передаёшь адреса по которым хранятся твои "пятнашки"
    там естественно цифры запредельные и курсор уходит в максимально отдалённое положение.

    curs1 dd 15
    curs2 dd 15
    invoke SetCursorPos,curs1,curs2

    не устаю повторять: читай ...\masm32\help\*.hlp !
     
  3. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    Э... А не проще открыть страницу форума в опере и включить её обновление каждые 1-2 мин.
     
  4. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Вот браузер "ОПЕРА" мне пока написать не под силу...
    Пока только этой программкой...
    :)
     
  5. Osen

    Osen Рие

    Публикаций:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    283
    Адрес:
    Париж
    TOLSTOPUZ
    addr просто надо тебе было убрать, т.к. это ключевое слово получает адрес операнда, а не его значение.
     
  6. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    во первых нечего меня дублировать,
    во вторых аддр убрать нехватит, не путай человека, если сам не знаешь:
    BOOL SetCursorPos(

    int X, // horizontal position
    int Y // vertical position
    );

    db на dd заменять кто будет?
     
  7. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    А почему DD?

    чё-то я туплю...
    число 15 - его же можно уместить в 1 байт...
    Зачем двойное слово?
    В чём хитрость?
     
  8. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    TOLSTOPUZ
    а форум ка бы не на хакере? там, помниццо такой рейтинг велся когда-то. :)
     
  9. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Да нет, обычный форум.
    Про любовь, короче... Ну а чтобы понравиться наиболее большему количеству девушек - применим ассемблер!
    Кто я? Воин Дзена или погулять вышел?
     
  10. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    В стек в винде все равно будет ложиться 4 байта. В данном случае будут взяты 3 следующие байта, что совсем не нужно.
     
  11. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    100пудова васм значит :)
     
  12. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Ага, понял.
    Эти три лишние байта находятся за границей памяти curs1,
    и не факт что они будут нулевые...
    Поэтому нужно dd
     
  13. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Да не, вы чего это?
    Я как бы с девушками...
    А тут на форуме одни мужики...
    Да и они только и могут что на МСДН послать, или в ГУГЛ...
    :)
     
  14. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    потому, что размерность int - двойное слово. если вы укажете байт (db) как параметр в invoke (асм) - скорей всего выскочит ошибка (push <byte> - в x86 асме нету). Кроме того вызываемая функция будет читать двойные слова. 'С' производит неявное преобразование типов. Вообще начинающим лучше не пользоваться макросами - многие вопросы отвечаются сами собой.
     
  15. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    TOLSTOPUZ
    если у тебя опера - не напрягай моск! зайди на нужную страницу и в контекстном меню (по клику правой клавишей) выбери "обновлять каждые->включить" и выбери период обновления.
     
  16. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Да нету у меня оперы, в том то и дело.
    Да и честно говоря не хочу я её. Потому что не знаю.
    Привык к ИЕксплореру
     
  17. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    TOLSTOPUZ
    то что оперы нету, это конеш +1, но то что IE это -10.
    ниже тебе, скорее всего, объяснят чем использование IE черевато..
     
  18. Osen

    Osen Рие

    Публикаций:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    283
    Адрес:
    Париж
    TOLSTOPUZ
    Хитрость в том, что любой параметр API-функции в Windows имеет размерность 4 байта. Также, стек всегда должен быть выровнен на 4 байта, если этого не будет (например, если случайно сделать push ax), то это может обернуться непредсказуемыми последствиями при вызове последующих функций. Ну это все стандартные правила при программирование для windows, к ним еще добавляются сохранение регистров ESI,EDI,EBX,EBP между вызовами и сохранение положительного значения флага направления, плюсом - в r0 нужно аккуратно играть с содержимым регистра ESP.
     
  19. TOLSTOPUZ

    TOLSTOPUZ New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2008
    Сообщения:
    509
    Вот блин, это серьёзная заявка...
    Не хотелось бы погореть из-за своей некомпетентности...
    Чем так опасен ИЕ? Кстати я седьмую версию поставил - но мне она что-то непонравилась - непривычно, и вернул старую шестую...

    ...Вообще-то у меня на диске есть эта самая Опера. я её даже не знаю как выглядит... Просто она есть... Я думал фигня...
    Вы считаете, есть смысл поменять браузер?

    P.S.
    Вот какая у меня Опера - версия 9.10.8679
     
  20. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Как и обещал Comer_ скажу, что пока работает вынь ИЕ как правило работает. А вот мозилла и опера бывает падают.