|

Ломы ломать? Пора бабки загребать!
Xakep, номер #017, стр. 017-060-2
Учиться или пучиться? Вот вопрос.
Но все это была присказка. А сказочная жизнь только начинается! :-) Прааально - учиться писать фейксерфы никогда не поздно, как завещал нам дедушка Лёнин. Лёнин дедушка - в смысле, Лени Голубкова, а не Дж.Леннон и не В.И.Ленин. :-) Я взял в качестве компилятора Delphi 3.0 - его проще всего найти и им проще всего пользоваться, практически ничего не зная о программировании (ну, мы-то не такие, мы - ого-го!). Ж-) Что понадобится? Пара функций и таймер. Таймер нужно набросить на форму и установить ему время срабатывания, скажем, каждые 5 секунд (для этого поставить у таймера Interval, равный 5000). Немного о функциях. В Delphi есть функция установки курсора мыши в произвольную точку экрана:
BOOL SetCursorPos(
int X, // горизонтальная координата
int Y // вертикальная координата
);
Таким образом можно, например, прикалываться над знакомыми - подкинуть им незаметно программку, которую будет не видно и которая будет дергать мышку невпопад. Хохму обещаю - правда, если не жалко нервов этих знакомых. Некоторые в истерику очень быстро впадают от того, что не могут попасть по кнопке "Пуск" с десяти раз. :-))) Следующая функция уже прямо из WinAPI. Она и сложнее, и мощнее.
VOID mouse_event(
DWORD dwFlags, // флаги, показывающие, что именно делать
DWORD dx, // горизонтальная координата или ее смещение
DWORD dy, // вертикальная координата или ее смещение
DWORD cButtons, // не используется, должно равняться 0
DWORD dwExtraInfo // немного дополнительных параметров для 32-битных прог. Тоже ставить в 0.
);
В зависимости от флагов, нужно устанавливать параметры dx и dy. Вот описание флагов:
- MOUSEEVENTF_ABSOLUTE
Параметры dx и dy задают точные координаты точки на экране, в которую нужно переместить курсор мыши. Лучше не задавать координаты больше, чем разрешение экрана. :-)
- MOUSEEVENTF_MOVE
В этом случае dx и dy задают смещение в пикселях точки от текущих координат, куда следует переместить курсор.
- MOUSEEVENTF_LEFTDOWN, MOUSEEVENTF_LEFTUP, MOUSEEVENTF_RIGHTDOWN, MOUSEEVENTF_RIGHTUP, MOUSEEVENTF_MIDDLEDOWN, MOUSEEVENTF_MIDDLEUP
Одновременно с перемещением можно еще делать так, будто пользователь мышкой кликнул. Понятно, что MOUSEEVENTF_(НАЗВАНИЕКНОПКИ)DOWN - это кнопку надавить, а то же самое, только _UP - отпустить. Параметры cButtons и dwExtraInfo нужно (так, на всякий случай) нулями забить. Мало ли чего программисты дяди Билли придумают. (-:
Назад на стр. 017-060-1 Содержание Вперед на стр. 017-060-3
|