Быстрый переход в группу «Пользователи», без надобности написания постов и ожидания.
Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
Маппинг для сервера
Если вы хотите обновить Ваш сервер новыми доработками — то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей
Моды для сервера
Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.
Программы для скриптера
Подборка удобных программ для скриптера
Статус В этой теме нельзя размещать новые ответы.
AntiLoop
Изучающий
Пользователь
Регистрация 8 Авг 2018 Сообщения 381 Лучшие ответы 0 Репутация 73
Привет всем вновь! Сегодня я покажу Вам еще настолько же заезженную тему, которой наверное еще троллили в 2007, но мало-ли кто не знает, поэтому приступим к нашему ознакомлению.
Шутка номер — 1.
Для начала, необходимо создать текстовый документ, для этого кликаем по рабочему столу мышкой, далее: Создать >>текстовый документ.
Пишем программы на Delphi. Часть 1. «Бегающая» кнопка
Многие начинающие программисты мечтают написать программу «шутку». В рунете есть очень много шуточных программ.
Например «Бегающая» кнопка. Сегодня я опишу как написать такую программу.
Создание формы
Для начала создадим форму для приложения:
File >> New >> Application
Далее создадим текст где и будет наш вопрос: Нажмите на кнопку «А».
Текстовую строку создали, отлично!
Сейчас создадим две кнопки:
Нам нужно изменить текст строки и текст кнопки. Нажмём на кнопкутекст. В окошке «Object Inspector» ищем вкладку «Caption». Там мы меняем текст кнопкитекстовой строки.
Создание формы окончено.
Написание кода программы
Исходный код программы-шутки
Исходник построен на интерфейсе Windows Forms. Простой, надежный и проверенный временем интерфейс. Язык программирования C#. Оформление интерфейса данной программы-шутки может быть любым, потому что рабочий интерфейс формируется из копии изображения экрана. Внешне программа состоит из маленького окна с одной кнопкой. При нажатии на эту кнопку запускается скрытый процесс шутки.
Программа совершенно безопасна для операционной системы, не оставляет никаких записей реестре, не влияет на работу программ и только создает временные визуальные эффекты зависания компьютера.
Алгоритм работы программы
- Запуск программы. Формируется окно с симпатичной картинкой.
- Нажатие на кнопку «Запуск». Окно программы скрывается и запускается процесс ожидания событий таймера.
- Событие таймера формирует изображение экрана и загружается в контейнер PictureBox расположенный на форме окна программы. Окно становится видимым, размещается поверх других приложений и так как поверхность окна — это изображение экрана 1:1 то создаётся впечатление зависание компьютера.
- Следующее событие таймера и окно программы-шутки незаметно скрывается. «Компьютер выходит из зависания», вроде бы .
События таймера замыкают процесс показа и скрытия копии изображения экрана. При лихорадочных щёлканьях раздраженного пользователя процесс ненадолго прерывается и затем всё повторяется вновь. Отключить программы можно двойным щелчком по застывшему экрану при предварительно нажатой кнопке Ctrl.
Методы класса FormJokeScreen
Программа простая по компоновке, построена на классе формы FormJokeScreen. В данный класс добавлены несколько методов и событий, обеспечивающих процесс создания цифровой шутки.
- CopyScreen()
- Reset()
- Event buttonStart_Click(…)
- Event pictureScreenFake_DoubleClick(…)
- Event timerProcess_Tick(…)
Метод CopyScreen()
Метод CopyScreen() отвечает за создание точной копии изображения экрана и расположения её на поверхности формы программы-шутки. В качестве контейнера для изображения выступает PictureBox.
private void CopyScreen() < // Получаем размеры экрана дисплея. int widthScreen = Screen.PrimaryScreen.Bounds.Width; int heightScreen = Screen.PrimaryScreen.Bounds.Height; // Создаем битовый массив (картинку) размером как у экрана монитора. var bitmapImage = new Bitmap(widthScreen, heightScreen); // Создаем поверхность рисования на созданном выше битовом массиве (картинке). var drawingSurface = Graphics.FromImage(bitmapImage); // Копируем изображение экрана в битовый массив. drawingSurface.CopyFromScreen(0, 0, 0, 0, bitmapImage.Size); // Созданную копию изображения экрана загружаем в PictureBox, // расположенный на поверхности окна программы-шутки. pictureScreenFake.Image = bitmapImage; >
Метод Reset()
Метод Reset() прекращает процесс цифровой шутки и восстанавливает первоначальный вид окна программы.
/// /// Остановка процесса шутки, /// и восстановление окна до первоначального вида. /// private void Reset() < // Останавливаем таймер timerProcess.Stop(); // В первую очередь: // Восстанавливаем первоначальный вид this.FormBorderStyle = FormBorderStyle.FixedToolWindow; // Во вторую очередь: // Восстанавливаем размер и положение окна на экране this.Bounds = rectangleBounds; // Восстанавливаем первоначальную картинку. pictureScreenFake.Image = Properties.Resources.улыбка; // Окно становится обычным в Z индексе this.TopMost = false; // Показываем кнопку buttonStart.Show(); >
Событие buttonStart_Click()
При нажатии кнопки генерируется событие buttonStart_Click(object sender, EventArgs e). Окно программы становится невидимым и пока оно невидимо, изменяется стиль и размер. Запускает таймер процесса цифровой шутки. Для восстановления первоначальных размеров в этом событии происходит запоминание первоначальных размеров окна.
private void buttonStart_Click(object sender, EventArgs e) < // Запоминаем размеры окна. rectangleBounds = this.Bounds; // Скрываем окно программы-шутки this.Hide(); // Скрываем кнопку. buttonStart.Hide(); // Удаляем рамку вокруг окна. this.FormBorderStyle = FormBorderStyle.None; // Размер окна должен быть равен размеру экрана в пискелях. this.Bounds = Screen.PrimaryScreen.Bounds; // Окно должно быть выше всех, // чтобы скрывать всё остальное. this.TopMost = true; // Запускаем таймер управления видимостью окна. timerProcess.Start(); >
Событие timerProcess_Tick()
Событие timerProcess_Tick(object sender, EventArgs e) генерирует таймер управляющий шутливым процессом. Перед каждым показом окна программы-шутки происходит копирование текущего изображения экрана.
private void timerProcess_Tick(object sender, EventArgs e) < if (this.Visible == false) < // Копируем экран. CopyScreen(); // Показываем окно, заслоняя им весь экран. this.Show(); >else < // На установленный промежуток времени скрываем окно. this.Hide(); >>
Событие pictureScreenFake_DoubleClick()
Событие pictureScreenFake_DoubleClick(object sender, EventArgs e) необходимо для остановки программы в момент когда она заслоняет экран копией изображения.
Если щелкнуть двойным кликом, то окно программы скроется и таймер запустится заново. Двойной щелчок может произойти, когда пользователь компьютера лихорадочно щелкает по зависшему экрану. Если же двойной щелчок происходит при нажатой клавише Ctrl, то проказница программа остановит свой процесс и покажет себя во всей красе .
/// /// Если по развернутому окну сделать двойной щелчок, /// окно скроется и таймер запустится заново. /// Если перед двойным кликанием нажать клавишу Ctrl /// процесс остановится и окно возвратится к первоначальному виду. /// /// /// private void pictureScreenFake_DoubleClick(object sender, EventArgs e) < if (Control.ModifierKeys == Keys.Control) < Reset(); >else < this.Visible = false; timerProcess.Start(); >>
Сведения об исходнике
Исходник создан в интегрированной среде программирования MS Visual Studio 2019. Исходный код написан на языке C#. В прикреплённом архивном файле содержится исходник программы и сама скомпилированная программа-шутка.
Источник: www.interestprograms.ru