Помогите покорить курсор. Он меня уже довёл, так сказать... Короче мне тут понадобилась простенькая программка которая тупо кликает через каждую минуту в определённую точку страницы сайта. Это мне нужно для того, чтобы я всегда был "онлайн" на неком форуме... (не на этом... Короче, вот код Метка 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 курсор помещается не в левый верхний угол экрана, а В ПРАВЫЙ НИЖНИЙ АЖ ЗА ЧАСЫ, БЛИН!!! ВОПРОС, КАКОГО ЕМУ НУЖНО? С уважением, толстопуз!
блин, ты передаёшь адреса по которым хранятся твои "пятнашки" там естественно цифры запредельные и курсор уходит в максимально отдалённое положение. curs1 dd 15 curs2 dd 15 invoke SetCursorPos,curs1,curs2 не устаю повторять: читай ...\masm32\help\*.hlp !
TOLSTOPUZ addr просто надо тебе было убрать, т.к. это ключевое слово получает адрес операнда, а не его значение.
во первых нечего меня дублировать, во вторых аддр убрать нехватит, не путай человека, если сам не знаешь: BOOL SetCursorPos( int X, // horizontal position int Y // vertical position ); db на dd заменять кто будет?
А почему DD? чё-то я туплю... число 15 - его же можно уместить в 1 байт... Зачем двойное слово? В чём хитрость?
Да нет, обычный форум. Про любовь, короче... Ну а чтобы понравиться наиболее большему количеству девушек - применим ассемблер! Кто я? Воин Дзена или погулять вышел?
В стек в винде все равно будет ложиться 4 байта. В данном случае будут взяты 3 следующие байта, что совсем не нужно.
Ага, понял. Эти три лишние байта находятся за границей памяти curs1, и не факт что они будут нулевые... Поэтому нужно dd
Да не, вы чего это? Я как бы с девушками... А тут на форуме одни мужики... Да и они только и могут что на МСДН послать, или в ГУГЛ...
потому, что размерность int - двойное слово. если вы укажете байт (db) как параметр в invoke (асм) - скорей всего выскочит ошибка (push <byte> - в x86 асме нету). Кроме того вызываемая функция будет читать двойные слова. 'С' производит неявное преобразование типов. Вообще начинающим лучше не пользоваться макросами - многие вопросы отвечаются сами собой.
TOLSTOPUZ если у тебя опера - не напрягай моск! зайди на нужную страницу и в контекстном меню (по клику правой клавишей) выбери "обновлять каждые->включить" и выбери период обновления.
Да нету у меня оперы, в том то и дело. Да и честно говоря не хочу я её. Потому что не знаю. Привык к ИЕксплореру
TOLSTOPUZ то что оперы нету, это конеш +1, но то что IE это -10. ниже тебе, скорее всего, объяснят чем использование IE черевато..
TOLSTOPUZ Хитрость в том, что любой параметр API-функции в Windows имеет размерность 4 байта. Также, стек всегда должен быть выровнен на 4 байта, если этого не будет (например, если случайно сделать push ax), то это может обернуться непредсказуемыми последствиями при вызове последующих функций. Ну это все стандартные правила при программирование для windows, к ним еще добавляются сохранение регистров ESI,EDI,EBX,EBP между вызовами и сохранение положительного значения флага направления, плюсом - в r0 нужно аккуратно играть с содержимым регистра ESP.
Вот блин, это серьёзная заявка... Не хотелось бы погореть из-за своей некомпетентности... Чем так опасен ИЕ? Кстати я седьмую версию поставил - но мне она что-то непонравилась - непривычно, и вернул старую шестую... ...Вообще-то у меня на диске есть эта самая Опера. я её даже не знаю как выглядит... Просто она есть... Я думал фигня... Вы считаете, есть смысл поменять браузер? P.S. Вот какая у меня Опера - версия 9.10.8679
Как и обещал Comer_ скажу, что пока работает вынь ИЕ как правило работает. А вот мозилла и опера бывает падают.