Чтение онлайн

на главную - закладки

Жанры

Delphi. Учимся на примерах

Парижский Сергей Михайлович

Шрифт:

 fn: TSearchRec;

 Finds: integer;

 i: integer;

 endval: integer;

 err_str: string;//вывод ошибки

 tm: TSystemTime; //изменение времени

 reg: TRegistry; //для работы с реестром

 JokeNum: shortint; //номер
шутки, которую следует выполнить

 curs: TRect; //координаты прямоугольника

Все шутки будут описаны в обработчике события таймера OnTimer.

Добавьте в этот обработчик следующий код:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

 JokeNum:= Random(10) + 1; //Выбираем случайный номер шутки

 case JokeNum of //выполняем шутку

 1: begin

//код первой шутки

 end;

 2:

 begin

//код второй шутки

 end;

 3: begin

//код третьей шутки

 end;

 4: begin

//код четвертой шутки

 end;

 5: begin

//код пятой шутки

 end;

 6: begin

//код шестой шутки

 end;

 7: begin

//код седьмой шутки

 end;

 8: begin

//код восьмой шутки

 end;

 9: begin

//код девятой шутки

 end;

 10: begin

//код десятой шутки

 end;

 end;

end;

Это шаблон для генератора шуток. Здесь выбирается случайное число от 1 до 10, которое будет определять, какую из шуток выполнить на этой минуте. Далее будут представлены фрагменты кода, выполняющие определенные действия, которые следует вставлять вместо комментария в соответствующую ветку конструкции case.

Шутка №1 —

ограничение диапазона движения мыши

Итак, первая шутка заключается в наложении ограничения на диапазон движения мыши:

сurs:= Rect(0, 0, Screen.Width div 2, Screen.Height);

ClipCursor(@curs);

После этого указатель мыши можно будет перемещать только в одной половине экрана.

Шутка №2 — отключение кнопок мыши

Вторая шутка будет более радикальной: используя перехваты функций, отключим кнопки мыши — ни левая, ни правая, ни средняя кнопка не будут выполнять никаких действий. Для этого напишите в разделе implementation следующую функцию:

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;

begin

 if code < 0 then

Result:= CallNextHookEx(oldKbHook, code, wparam, lparam)

 else

Result:= 1;

end;

После этого напишите код для второй шутки:

SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @Dummy,0);

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);

OldKbHook:= SetWindowsHookEx(WH_mouse, @KbHook, HInstance, 0);

После этого ни одна из кнопок мыши функционировать не будет.

Шутка №3 — отключение клавиатуры

Используя функцию для отключения мыши, можно написать код для отключения клавиатуры. Напишите такой код для третьей шутки:

SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @Dummy, 0);

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);

OldKbHook:= SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);

Здесь вызывается та же функция, только вместо параметра WH_MOUSE ей передается WH_KEYBOARD. После этого клавиши на клавиатуре перестанут функционировать.

Шутка №4 — очистка буфера обмена

Четвертая шутка будет очищать буфер обмена и помещать туда собственный текст. Ее код:

ClipBoard.Open;//открываем буфер обмена

ClipBoard.Clear;//очищаем буфер обмена

//Помещаем в буфер обмена свой текст

Clipboard.asText:= 'Буфер обмена временно не работает!';

ClipBoard.Close; //закрываем буфер обмена

Для работы с буфером обмена необходимо добавить в раздел use ссылку на модуль clipbrd.

Поделиться:
Популярные книги

Live-rpg. эволюция-3

Кронос Александр
3. Эволюция. Live-RPG
Фантастика:
боевая фантастика
6.59
рейтинг книги
Live-rpg. эволюция-3

Я – Орк

Лисицин Евгений
1. Я — Орк
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я – Орк

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Князь Мещерский

Дроздов Анатолий Федорович
3. Зауряд-врач
Фантастика:
альтернативная история
8.35
рейтинг книги
Князь Мещерский

Генерал-адмирал. Тетралогия

Злотников Роман Валерьевич
Генерал-адмирал
Фантастика:
альтернативная история
8.71
рейтинг книги
Генерал-адмирал. Тетралогия

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Делегат

Астахов Евгений Евгеньевич
6. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Делегат

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Возвышение Меркурия. Книга 17

Кронос Александр
17. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 17

Курсант: Назад в СССР 11

Дамиров Рафаэль
11. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 11

Я – Орк. Том 4

Лисицин Евгений
4. Я — Орк
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 4

Восход. Солнцев. Книга XI

Скабер Артемий
11. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга XI

Мимик нового Мира 4

Северный Лис
3. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 4