Delphi IRC Bot Исходники | Прога Размещён: 7.01.2009
IRC бот, анализирует разговор на канале, и отвечает заранее заготовлеными шаблонами. Имеется возможность флуда, и рекламы.
Работает на базе IdIRC компонента, по умолчанию входящего во все версии делфи. Компонент IdIRC делает работу с IRC очень простой, после указание всех данных для коннекта уже традиционым методом: idIRC1.Connect(); конектимся по заданым парамитрам... Когда кто-либо на канале отправляет сообщение, его можно обработать функцией onMessage... Отправить сообщение можно функцией idIRC1.Say(#канал,'Сообщение'); Где #канал - канал на который отправляем сообщение...)


C++: Построение графиков Исходники | Прога Размещён: 17.06.2008
В этой программе продемонстрирована возможность графического представления некоторых данных сгенерированных в С++. В данном примере данные генерируются случайным образом, и можно сказать это один из самых простейших примеров. Итак пробежимся в крации по исходнику:
Здесь используется таймер, для обеспечения задержки при формировании грфика. При срабатывании таймира мы чертим очередную линию, начиная от текущей точки, к координатам x,y :) Затем текущая точка принимает значение конца последней линии, и уже от этого места при следующем событии onTimer рисуется следующая линия :)
Естественно мы также видём учёт текущей координаты по y оси, и при каждом срабатывании таймира увеличиваем это значение на несколко пикселов. Как только текущая точка по y оси станит больше чем длина окна мы можем говорить о том, то посроение графика завиршино, и всё что мы нарисуем за границами окна юзер уже не увидит :) Поэтому после этого приступим к прорисовке графика заново, обеспечив при этом небольшую задержку.
Итак, от теории к практике:
Form1->Canvas->LineTo(x,y); - Нарисовать на поверхности формы линию, от текущей точки, до точки с координатами x, y. Cледующий метод Canvas'a: MoveTo(х,у); - позволяет изменить текущую точку, на опять же стандарт - х, у.
Чтобы затереть всё предыдущее изображение на форме, т.е обнулить её я использовал функцию Rectangle(0,0,1000,1000); - которая позволяет нарисовать квадрат\прямоуголник. Но при простой прорисовке квадрата ничего не стирается, поэтому область внутри прямоугольника нужно залить определённым цветом: Canvas->Brush->Color=clBtnFace;
Исходник максимально прокомментирован, и именно на нём будит проще всего разобраться :)


C++: QIP троян Исходники Размещён: 17.06.2008
Эта программа выдирает зашифрованные пасы из квипа, и отправляет их php скрипту, который сохраняет всё это дело на сервере. Выкладывается только с целью ознакомления, я не нису ответственности за возможный вред нанесенный тебе или третим лицам в следствии применения данной программы!
Исходник максимально прокомментирован, сначала мы ищем в папке с QIP'ом всех юзеров, затем получаем полный путь к файлу с конфигами, выдираем необходимую нам инфу, и делаем запрос к пхп скрипту, который сохраняет переданную ему инфу, и делает её доступной для тебя!


C++: Рисование на поверхности чужих окон Скачать прогу Исходники Размещён: 19.06.2008
В данной проге мы будим рисовать на чужих окнах используя технологию GDI. Прежде всего необходимо получить обычный дискриптор окна HWND, и затем преобразовать его в дескриптор типа HDC, следующим образом: HDC My= GetDC(H); Делее имея дескриптор HDC мы можем приступить к рисованию, используя функции очень похожие на обычный Canvas. Например, чтобы вывисти текст на поверхность окна воспользуемся следующей функцией: TextOut(My,150,70,S.c_str(),S.Length()); В переменную S преждевременно должна быть занисина строка, которую буим выводить на экран... Вывести линию можно функцией LineTo(My,480,5); где My - дескриптор окна типа HDC. В исходнике имеется описание и других функций...


C++: Плавающие окна + регионы Скачать прогу Исходники Размещён: 19.06.2008
Очень простая в реализации, но прикольная прога. Как ты наверное уже догадался по названию она заставляет окно программы двигаться по экрану... Атакже использует нестандартные размеры окна приложения (ограничивает размеры рабочей области формы с помощью регионов). Реализация самая простая: Через Timer, с итервалом 10 мс, меняется свойство Top, формы Form1... Аналогично, и с горизонталью: Form1->Left(Random(700)); Для горезонтали устанавливается отдельный таймер. А что касается регионов: Сначала мы объявляем новый регоин: HRGN MyRegion; Затем объявляем структуру типа Rect, c описанием координат, которые будут использоваться при построении региона: TRect Rec=Rect(0,0,Width,Height); Здесь первые 2 нуля указывают верхнюю точку регоина, а парамитры Width и Height показывают нижнюю точку. Этого достаточно для построения круга. Далее мы создаём регион: MyRegion=CreateEllipticRgnIndirect(&Rec); Как ты наверное уже догадался функция CreateEllipticRgnIndirect принимает в качестве параметра ранее объявленную структуре Rec, а суть функции заключается в формировании указанного региона, и его сохранении в переменную MyRegion. И последний штрих, применение уже созданного региона к нашему окну: SetWindowRgn(Handle,MyRegion,true); Функция SetWindowRgn применяет регион "MyRegion" к окну с дескриптором Handle (Handle всегда указывает на дескриптор текущего элемента, в данном случаи формы), и последний параметр функции SetWindowRgn указывает на необходимость немедленной перерисовки окна... В любом случае чтобы визуально отобразить регион необходимо перерисовать окно :)


C++: Графический редактор Скачать прогу Исходники Размещён: 8.07.2008
Самый примитивный графический редактор. Позволяет создавать и редактировать изображения с помощью "карандаша". При старте рисования происходит событие onMouseDown мы его ловим, и устанавливаем текщюю точку на рисуке равной точке с координатами курсора: Image1->Canvas->MoveTo(X,Y); Далее мы объявляем, что Pen=true; чтобы в дальнейшем определять включон ли режим рисования... При отпускании юзером кнопки мыши(onMouseUP) мы устанавливаем Pen=false; Т.е пока юзер держит клавишу мыши нажатой Pen будит равен true; Далее на событие OnMouseMove мы прописываем следующий код: if(Pen) { Image1->Canvas->LineTo(X,Y); } Тоесть, если переменная Pen = true, и в это время юзер двигает мышкой то мы рисуем обычную линию... Событие MouseMove происходит при изменении координат курсора на 1 пиксел, что позволяет рисовать любые линии...
Далее мы можем сохранить то, что нарисовал юзер: Image1->Picture->SaveToFile(SavePictureDialog1->FileName); Здесь используем дополнительный компонент SavePictureDialog1->FileName.


C++: Сканер портов Скачать прогу Исходники Размещён: 19.06.2008
Прога, проверяет какие порты открыты на компе юзера. Проверка осуществляется самым простым, и стандартным способом: Прога пытается установить соединение с определённым портом на сканируемом компе, и если это удастся порт считается открытым. В проге используются стандартные функции работы с компонентом CientSoket


C++: Использование Canvas Скачать прогу Исходники Размещён: 11.06.2008
Прога, иллюстрирующая использование компонента Canvas.
Содержит часы, отображающие текущее время, а также приветствие всегда расположенное по центру экрана, динамически изменяющееся при изменении размеров формы.
Технические коменты:
Чтобы при изменении размеров форумы обновить содержимое окна следует прописать на событие onResize код: Form1->Refresh();
Определить текущие размеры формы Можно используя функции ClientHeight, и ClientWodth. Динамический вывод текста на поверхность формы можно осуществить функцией Canvas->TextOutA(x,y,"Сообщение");


Delphi: Скриншутер Скачать прогу Исходники Размещён: 28.06.2008
Многим требуется делать скриншоты экрана, но стандартными средствами Windows делать это не очень удобно: Нужно нажимать клавишу принтскрин, затме вставлять изображение в пэинт, сохранять его...
Мы написали прогу, которая в одно нажатие клавиши будит делать скриншот, причём вы можите делать хоть 1000 скринов подряд, и все они будут автоматически сохранятся у вас на диске C:\ Для того, чтобы сделать скриншот достаточно нажать клавишу с цифрой 7
В своей работе прога использует функцию getasynckeystate(ord('7')) - чтобы определить нажата ли клавиша с цифрой 7... Затем если клавиша нажата мы будим скриншотить изображение экрана, предварительно определив его длину, и ширину: bm.Width := Screen.Width; и Height соответственно. Затем копируем полученую область функцией BitBlt, и скидываем в Jpg файл. Всё это помещается под таймир, и в бесконечном цикле мы делаем скрины, по указанию юзера.


Делфи\С++: Программа для обмена текстовыми сообщениями в локальной сети Скачать прога, и исходники: Делфи C++(FastNet)
Программа для обмена простыми текстовыми сообщениями в tcp\ip сетях (LAN, Internet). Для реализации нам понадобится забросить на форму сервера компонент - ServerSocket, а на форму клиента - ClientSocket. Затем с помощью этих компонентов будим продолжать дальнейшую работу, для начала сокеты необходимо активизировать, для этого нужно указать Имя_сокета->Active=true; После чего на сервер сокете можно начинать "слушать" сокет. При подключении клиента к сокету происходит событие onConnect, если клиент шлёт серверсокету какое либо сообщение наступает событие - onClientRead. Получить переданный вам текст можно функцией - имя_сокета.Socket.Connections[0].ReceiveText;
А для того, чтобы послать текст нужно воспользоваться конструкцией - serversocket1.Socket.Connections[0].SendText('Текст');
Теперь о клиентской части: Чтобы установить соединение с сервером нужно указать: clientsocket1.Address:='127.0.0.1'; clientsocket1.Port:=111; clientsocket1.Active:=true;
После этого на сервере сработает функция onConnect... На сервере имеются следующие основные фичи: onRead - событие на чтение, получить текст можно так: clientsocket1.Socket.ReceiveText;
А чтобы послать текст следует воспользоваться конструкцией: clientsocket1.Socket.SendText('Text');
В основных деталях всё рассмотрено, C++ и Делфи не сильно отличаются!


Комментарии | Задать вопрос