Полезные программы (собственные)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by De-visible, 9 Jul 2008.

  1. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    326
    Likes Received:
    98
    Reputations:
    12
    смысл писать примеры из книжек? мой предыдущий вопрос был мягко говоря иронией.
     
  2. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    1,037
    Likes Received:
    550
    Reputations:
    66
    Люди не реагируют на просьбы, и правила в теме, а потом обижаются когда их называют долбоебами...
     
    2 people like this.
  3. funnyNe0

    funnyNe0 New Member

    Joined:
    21 Aug 2008
    Messages:
    7
    Likes Received:
    1
    Reputations:
    -1
    Всем привет.
    Есть файл login.ini (в нем храниться пароль в защифрованном виде). Файл весит 42байта и служит для авторизации в одной программе. Мне же необходимо файл этот вытащить с другой машины.
    Выводить я его решил через Аську. Т.е. мне неоходимо преобразовать файл в текст(в Хекс например) , далее этот текст вывести в аську и отправить.
    На выхлопе я получу сообщение в аську -> сохраню файл в Хекс редакторе под именем login.ini и все хорошо. Поясню, что все эти манипуляции нужны для обхода фаера)

    Необходимо реализовать следующую программу:
    1. Поиск нужного файла
    2. Преобразование файла в текст (что то вроде "00 AH B7 F1")
    3. Подождать пока окно аскьи станет активным
    4. вывод текста в аську ("00 AH B7 F1") и отправка сообщения

    с пунктами 1 и 4 справлясь сам. с пунктами 2 и 3 проблемы.

    Как представить нужный файл в hex-виде?
     
  4. funnyNe0

    funnyNe0 New Member

    Joined:
    21 Aug 2008
    Messages:
    7
    Likes Received:
    1
    Reputations:
    -1
    while not Eof(myFile) do
    begin
    BlockRead(myFile, oneByte, 1); // ShowMessage(IntToStr(oneByte));
    end;

    Как оказывается все просто, когда юзаешь Гугл. =)
     
  5. MbILLIKA

    MbILLIKA New Member

    Joined:
    16 Sep 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Здравствуте кто нить может взяться за заказ? хатела бы что бы пределал прогу VKinviter 0.4.1 под новый интерфей сайта ВКонтакте, думаю это не сложно для вас
     
  6. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    582
    Likes Received:
    653
    Reputations:
    210
    StepFucker

    [​IMG]
    Программа на ассемблере (MASM32, 2000 строк), позволяющая идеально проходить треки в игре StepMania.
    Скачать можно тут (exe + исходники + ресурсы).
    Более подробное описание и видео работы тут.
     
    #66 d_x, 20 Sep 2009
    Last edited: 20 Sep 2009
  7. Hiro Protagonist

    Joined:
    26 Aug 2009
    Messages:
    132
    Likes Received:
    24
    Reputations:
    -2
    peshow 0.1

    - Парсинг Файлового заголовка
    - Парсинг опционального заголовка
    - Парсинг Data Directory
    - Парсинг таблицы секций
    - Парсинг экспорта, в том числе переданного
    - Парсинг импорта

    - Стандартный (без forwarderz)
    - Bound (без forwarder refz)

    - Парсинг релоков

    src&bin
     
  8. Dosia

    Dosia Member

    Joined:
    5 Jun 2009
    Messages:
    118
    Likes Received:
    81
    Reputations:
    6
    OFIDS (Open file in directory searcher)


    Описание:
    Программа ищет файлы которые используются другими программами в указанной вами директории.

    Скриншот:

    [​IMG]

    Скачать исходники и компилированный .exe
    1. narod.ру
    2. rapidshare.ком
    3. dump.ру

    Принцип работы:

    Жмем "Selecet Dir and Scan", после чего программа запустит поток поиска, попросит указать директорию для поиска, после чего будет искать используемые файлы в этой директории.

    Если "Use recursion" отмечен, то программа будет искать используемые файлы не только в указанной вами директории но и во всех вложенных в нее директориях.

    Наиболее полную картину может дать установка в поле "Detection" - "FileStream".

    Также присутствует возможность сохранить результат поиска в файл "Drop.txt", находящийся в той же директории что и исполняемый файл OFIDS.

    If BaianFound = True then Delete_this_post
     
    #68 Dosia, 27 Sep 2009
    Last edited: 27 Sep 2009
    2 people like this.
  9. [aciD]

    [aciD] Banned

    Joined:
    30 Sep 2009
    Messages:
    5
    Likes Received:
    10
    Reputations:
    0
    PHP Fusion bruter by ac1D
    [​IMG]
    Сам собирает и брутит пользователей, многопотоный, работает без прокси
    Скачать!
     
  10. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,174
    Likes Received:
    266
    Reputations:
    82
    Time Before End Of Para 1.0 beta

    Выходные скукота, решил доделать свою идею, которая появилась у меня в начале семестра. А именно, разработать программу, которая показывала бы время до окончания пары. Встречаем! >>> Time Before End Of Para 1.0 beta
    • Программа компактна и весит всего 4 096 байт (писал на Си WinAPI, т. к версию под FASM было очень муторно отлаживать).
    • Открытый исходный код.
    • Не жрет память и автоматически настраивает таймер обновления времени.
    • Имеет файл конфигурации!
    Особо её не тестировал отсюда приставка beta. Найдете глюки пишите исправим.
     
    _________________________
    3 people like this.
  11. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    787
    Likes Received:
    294
    Reputations:
    214
    Process Terminator

    давно писал подобное. создаем список процессов, если надо, сохраняем. одним кликом убиваем все процессы из списка. очень помогал против "злых окон", когда уйма ие окон открывается с бешанной скоростью. а так же чтоб разгрузить систему перед играми на слабом компе.
    если ещё кому-нибудь надо...
    язык: c++ Qt

    [​IMG][​IMG]

    [download]
    http://slil.ru/28633876 (Link Updated)

    за вопросами в личку
     
    #71 BrainDeaD, 15 Oct 2009
    Last edited: 11 Feb 2010
  12. ichechen

    ichechen New Member

    Joined:
    16 Oct 2009
    Messages:
    34
    Likes Received:
    4
    Reputations:
    8
    M3U Copying

    Простенькая консольная программа для копирования музыки из M3U списка в заданную папку, полезна при необходимости выделения музыки из списка для дальнейшей обработки

    Язык C#
    Code:
    using System; using System.Collections.Generic; using System.Text;  using System.IO;  namespace M3UCopyer {      class Program     {         static void Main(string[] args)         {             string filePath;                                    //Path to M3U File             string collectionPath;                              //Path to end folder              List<string> fNamesCol = new List<string>();        //File names             int i = 0;                                          //i             string s = "";                                      //Temporary              /*****************************************************************COPYRIGHT*************************************************************/             Console.WriteLine();             Console.ForegroundColor = ConsoleColor.Green;             Console.Write("======================================================");             Console.ForegroundColor = ConsoleColor.Yellow;             Console.Write("-------"); System.Threading.Thread.Sleep(250);             Console.ForegroundColor = ConsoleColor.Red;             Console.WriteLine(">>>>>>>>>>>>>"); System.Threading.Thread.Sleep(250);             Console.ForegroundColor = ConsoleColor.White;             Console.WriteLine();             Console.WriteLine("|-----------------------COPYRIGHT (C) ICHECHEN-------------------------|"); System.Threading.Thread.Sleep(250);             Console.WriteLine();             Console.ForegroundColor = ConsoleColor.Red;             Console.Write("<<<<<<<<<<<<<");             Console.ForegroundColor = ConsoleColor.Yellow;             Console.Write("-------"); System.Threading.Thread.Sleep(250);             Console.ForegroundColor = ConsoleColor.Green;             Console.WriteLine("======================================================"); System.Threading.Thread.Sleep(250);             Console.WriteLine();             /***************************************************************************************************************************************/              Console.WriteLine();             if (args.Length < 1)             {                 Console.ForegroundColor = ConsoleColor.DarkYellow;                 Console.WriteLine("Please enter M3U file address: ");                 Console.ForegroundColor = ConsoleColor.Yellow;                 filePath = Console.ReadLine();                 Console.ForegroundColor = ConsoleColor.DarkYellow;                 Console.WriteLine("Please enter path to you collection: ");                 collectionPath = Console.ReadLine();                  try                 {                     StreamReader sr = new StreamReader(filePath, System.Text.Encoding.GetEncoding(1251));                     /*******************************Extracting to fNameCol*******************************/                     sr.ReadLine();                     while (!sr.EndOfStream)                     {                         if (i == 1)                         {                             s = sr.ReadLine();                             if (s.Substring(1, 1) != ":") { s = filePath.Substring(0, 3) + s; }                             fNamesCol.Add(s); i = 0;                         }                         else { sr.ReadLine(); i++; }                     }                     sr.Close();//                     /****************************************FILE COPY************************************/                     if (fNamesCol.Count > 0)                     {                         FileInfo f;                         if (collectionPath.Substring(collectionPath.Length - 1, 1) != Convert.ToString('\\'))                         { collectionPath = collectionPath + Convert.ToString('\\'); }                         foreach (string fp in fNamesCol)                         {                             f = new FileInfo(fp);                             Console.WriteLine(fp);                             File.Copy(f.FullName, collectionPath + f.Name, true);                             Console.ForegroundColor = ConsoleColor.Green;                             Console.WriteLine("OK!");                             Console.ForegroundColor = ConsoleColor.DarkYellow;                         }                         Console.ReadLine();                     }                 }                 catch                 {                     Console.ForegroundColor = ConsoleColor.Red;                     Console.WriteLine("Bad M3U filename!");                     System.Threading.Thread.Sleep(1000);                 }             }         }     } }
    Скачать .exe => http://depositfiles.com/files/l1v0cmmwb
     
  13. ichechen

    ichechen New Member

    Joined:
    16 Oct 2009
    Messages:
    34
    Likes Received:
    4
    Reputations:
    8
    ISDB

    Программа для управления магазином компьютерной техники
    Язык VB


    Исходники и выходной файл в архиве
    Скачать -> http://depositfiles.com/files/p3wua7mz8
     
    #73 ichechen, 17 Oct 2009
    Last edited by a moderator: 10 Feb 2010
    2 people like this.
  14. }{AS 99

    }{AS 99 Member

    Joined:
    18 Sep 2009
    Messages:
    52
    Likes Received:
    67
    Reputations:
    0
    Недавно начал программировать на C# может с неделю...Вот написал сегодня программу для конвертации валют.
    Code:
    using System; using System.Collections.Generic; using System.Linq; using System.Text;  namespace KursBablo  {     class Program     {         static void Main(string[] args)         {             double var1, var3 = 43.7429, var4 = 8.1120, var2 = 29.3281, var5 = 47.7813, var6 = 12.1243, var7 = 13.1000;   	   	//Курсы валют на сегодня              const string rubli = "2";             const string grivna = "1";             bool mybool = (false);             string mystring;              while (!mybool)                 //бесконечный цикл             {                 Console.WriteLine("Программа для конвертации гривен и рублей в евро,доллары,фунты.");                 Console.Write("Теперь введите сумму:");                 var1=Convert.ToDouble(Console.ReadLine());                 Console.WriteLine("Выберете валюту:");                 Console.WriteLine("1 - Гривна");                 Console.WriteLine("2 - Рубль");                 Console.WriteLine("Чтобы выбрать гривну - нажмите 1,чтобы выбрать рубли нажмите - 2!");                 mystring = Console.ReadLine();                 switch (mystring)                 {                     case grivna:                         Console.WriteLine("В долларах: {0}.", var1 / var4);                         Console.WriteLine("В евро: {0}.", var1 / var6);                         Console.WriteLine("В фунтах: {0}.", var1 / var7);                         //Результаты для гривны                         continue;                     case rubli:                         Console.WriteLine("В долларах: {0}.",var1/var2);                         Console.WriteLine("В евро: {0}.",var1/var3);                         Console.WriteLine("В фунтах: {0}.",var1/var5);                         //Результаты для рублей                         continue;                 }             }         }                                     }     }
    Прошу строго не судить...
    Скачать exe:http://depositfiles.com/files/hxoxrhcnk
     
    #74 }{AS 99, 18 Oct 2009
    Last edited: 18 Oct 2009
    1 person likes this.
  15. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    1,012
    Likes Received:
    162
    Reputations:
    27
    Message Box v 1.0 by Chrome~

    Решил написать небольшую программу для новичков. Профессионалам в сфере программирования в Delphi она ни к чему.

    В общем, иногда, когда пишите серьезные проекты, приходится очень часто делать вызов диалогового окна с помощью Win Api функции MessageBox. Если вы иногда забываете значения, которые нужно передавать в программу для создания того или иного окна, можете воспользоваться данной программой.

    Эта программа предназначена для генерации Delphi кода вызова Win Api функции MessageBox с заданными вами параметрами.

    Вы можете делать тест того, как будет выглядеть окно, а потом, собственно, генерировать код.

    Скриншоты:

    [​IMG]
    [​IMG]
    [​IMG]

    Скачать exe + delphi sources:

    Code:
    http://rapidshare.com/files/297646861/Message_Box_v_1.0.rar
    http://depositfiles.com/files/6plkjh4a4
     
    #75 Chrome~, 25 Oct 2009
    Last edited: 25 Oct 2009
    3 people like this.
  16. ange007

    ange007 Member

    Joined:
    26 Aug 2009
    Messages:
    16
    Likes Received:
    21
    Reputations:
    0
    Частенько бывает что нужно проверить запрос, или цепь запросов.
    Вот для этого я и написана данная программа.
    [​IMG]
    Code:
    Программа: http://a-soft.org.ua/down/o-8.html
    или http://a-soft.org.ua/
     
    #76 ange007, 27 Oct 2009
    Last edited: 3 May 2010
    1 person likes this.
  17. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    M3U Copy

    [​IMG]

    Написал программу для копирования или перемещения файлов из M3U плэйлиста. Поддерживаются листы с абсолютным и относительными путями, также успешно обрабатываются и битые листы, главное чтобы путь до файла был целым и отдельной строкой.

    Язык: QT + С++

    Исходник и исполняемый файл:
    Code:
    http://www.multiupload.com/5O5DHVDQHS

    ChaOs Generator

    [​IMG]

    Многофункциональный генератор словарей для брута.

    Особенности:
    ● Высокая скорость работы(словарь с логином в 10 символов и 7-значным цифирным паролем - 6 сек.).
    ● Возможность разбора сгенерированого словаря по маске(QRegExp).
    ● Возможность добавлять к паролю префикс и пост фикс.
    ● Один генератор на все случаи жизни. При наличии смекалки можно сгенерировать словарь для чего угодно.

    Язык: QT + С++

    Исходник и исполняемый файл:
    Code:
    http://www.multiupload.com/OHOK5D8WDU
    Не запускается программа? Скачай библиотеки QT:
    Code:
    http://www.multiupload.com/PP2SAN0A7R
    P.S. Программы писались для самообразования, возможны банальные ошибки, о коих прошу сообщать мне.
     
    #77 \\ChaOs//, 21 Nov 2009
    Last edited: 21 Nov 2009
    1 person likes this.
  18. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,204
    Reputations:
    455
    MicSpy By SLESH 1.0b

    Программа: MicSpy By SLESH 1.0b
    Язык: Delphi
    Размер: Чистый размер после компила через альтернативные модули 13824 байта
    Размер после UPX 7680 байт
    Предназнаение: Скрытая запись звука с устройства установленного поумолчанию в системе для записи голоса (микрофон или линейный вход, или стере/моно микс), что настроено, с того и пишет.
    Особенности:
    1) Данные записываются в формате mp3 24 КГц 32кбит/с, моно. Для записи используется стандартный виндовый кодек MPEG LAYER-3
    2) Название файлов генерируется как год_месяц_день_час-минуты-секунды.mp3
    3) Управление программой осуществляется через WEB интерфейс. Подключатьcя к порту 4545. Типа http://127.0.0.1:4545/
    4) Админка предоставляет слудющие функции:
    - выгрузка программы
    - начать/остановить запись
    - отображение списка записанных файлов + размер их
    - удалять записанные файлы
    - скачевать записанные файлы
    Разное: Ну програмка довольно сыроватая, но с легкость может быть доделана функция обхода виндового фаера + инстал в систему. Проверял запись с установленными устройствами - микрофон и стерео микс - вроде нормально пишет в файл.

    В архиве имеется сама прожка + её исходник.
    Исходник
    MicSpy.dpr - основная часть (реализация админки)
    API.pas - константы, типы и функцкии, юзал для уменьшения размера, т.к. отказался от модуля Windows.pas
    MicRec.pas - функции записи

    http://slesh.name/uploads/MicSpy.rar
     
    1 person likes this.
  19. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,204
    Reputations:
    455
    MicSpy SE (Stream Edition)

    MicSpy SE (Stream Edition)​

    Это собственно говоря небольшое продолжение идеи
    микрофонного шпиона, но чуть с другой технологией работы.

    Основные изменения:
    1) отсутствует админка
    2) запись больше не производится в файлы
    3) скомпилить через альтернативные модули и упаковать UPX то размер будет 5632 байта т.е. как видно - существенно уменьшился размер
    4) теперь данные передаются в псевдопотоковом режиме через сеть.
    5) для прослушивания нужен желательно Winamp
    6) возможность одновременного подключения 256 пользователей.

    Алгоритм работы:
    1) инициализируется формат записываемых данных
    2) инит сокетов
    3) ожидание подключения клиента
    4) если есть клиент, то считывает http заголовок
    5) если неудачно считался, то клиент отключается и ему посылается ответ HTTP/1.0 404 Not Found
    6) если удачно считался заголовок то идут действия:
    7) если клиентов 256 то клиент отключается и ему посылается ответ HTTP/1.0 404 Not Found
    8) если первый клиент, то включает запись и добавляет сокет клиента в очередь на посылку данных
    9) если не первый, то просто сокет добавляется в очередь посылки данных
    10) если идет запись, и получены данные, то проверяется очередь сокетов и каждому сокету отправляется этот пакет
    11) если данные не отправились (клиент отключился), то сокет закрывается и удаляется из очереди
    12) если закрыт последний сокет то останавливается запись, чтобы не расходовать ресурсы.

    Достоинства:
    1) малый размер
    2) нет нужды хранить файлы
    3) нет нужды управлять записью, всё само идет.
    4) прослушивание в реальном времени.
    5) до 256 одновременных клиентов

    Недостатки:
    Как и во всём хорошем есть сво:е плохое )
    1) трафик расходуется с заданным битрейтом записи.
    В локалках - это норм. да и при существующем инете это уже не проблема.
    2) получение HTTP заголовка от клиента - глючно сделано, по этому пока данные не получатся то второй клиент не подрубится. т.е. нужно просто сделать таймаут на сокет (на чтение) или заюзать select. Так что это решаемо.
    3) т.к. реализована псевдопоточность, то довольно сложновато прослушать через браузер данные.
    т.е. Quick Time отказался слушать почему то.

    Зато Windows Media Player и WinAmp в легкую смогли получать данные по сети, достаточно было указать адрес http://xxx.xxx.xxx.xxx:4545/

    Так вот небольшая доделка старого MicSpy сделанная за 2 часа )

    В архиве можно найти архив со следующими файлами:
    1) MicSpySE.dpr - основной модуль
    2) API.pas - список зающанных API функий
    3) MicRec.pas - модуль отвечающий за запись и передачу данных
    4) MicSpySE.exe - скомпиленный через альтернативные модули и упакованный UPX

    P.P.S нашел шас глюк небольшой. забыл вставить
    SendToClient(csocket, HeaderOK);
    после
    if SocketList.data[x] = 0 then
    begin
    т.е. в одном месте есть а в другом месте нету.

    http://slesh.name/uploads/MicSpySE.rar

    (C) SLESH
     
    1 person likes this.
  20. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,204
    Reputations:
    455
    Micro Web Server DLL

    Micro Web Server DLL

    Что это и для чего это?
    1) Это небольшой веб сервер реализованный в виде DLL
    2) Может использовать как добавочная нагрузка на разного рода программы, где необходим свой простенький веб сервер, преимущественно для скачевание файлов. А также можно сделать его полезной нагрузкой шпионских программ или других ползучих гадов )

    Характеристики:
    1) чистый размер DLL - 4608
    2) язык программирования - С++
    3) среда разработки - MS Visual Studio 2008 Pro
    4) 2 функции - остановка сервера и запуск сервера
    5) Поддерживаемые ОС - Windows 98SE - Windows 7
    6) Возможность использования в любых программах на любых языках (ASM, Delphi, C, C++, VB и другие компилируемые языки)
    7) Сокетная система - WinSock2
    8) зависимость от DLL - WS2_32.DLL, KERNEL32.DLL, USER32.DLL. Другими словами - всё стандартное, всё системное.

    Возможности:
    1) неограниченное кол-во работающих параллельно серверов (сколько система позволит)
    2) Запуск и остановка любого сервера в любое время
    3) задание порта для сервера
    4) задание таймаута на получение команды от клиента
    5) установка своей корневой диры для каждого сервера
    6) задание максимального кол-ва пользователей одновременно обрабатываемых сервером.
    7) установку размера буфера при отдаче файлов. (но не менее 1024 байт)
    8) максимальный поддерживаемый размер файла - сколько позволит винда. Теоретически должно работать с файлами > 4 гигов
    9) показ содержимого папки
    10) поддержка русскоязычных названий папок и файлов. Теоретически вообще любые кодировки должны пахать, потому что используется widechar.

    Чего не умеет:
    1) никакие запросы кроме GET не поддерживаются
    2) нет поддержки докачки файлов.
    3) нет поддержки файлов размером больше 2 гигов.
    4) никакие php, perl и прочие cgi не поддерживаются
    5) сервер настроен так, что все файлы он отдает на скачевание а не на показ. т.е. я поставил application/octet-stream для всех типов файлов. Но по желанию каждый может изменить.

    Функции DLL
    function StartServer(var id : dword; ip : dword; port : word; MaxClients : integer; TimeOut : dword; BufSize : dword; MainDir : pwidechar):dword;

    Функция возвращает результат запуска сервера. Константы описаны ниже.
    Параметры:
    id - в переменную будет записан дескриптор сервера
    ip - сетевой интерфейс на котором будет слушаться порт. 0 - на всех.
    port - порт для сервера
    MaxClients - макс число одновременно подсоединенных клиентов к данному серверу
    TimeOut - таймаут на получение команды от клиента в миллисекундах. т.е. 1000 = 1 сек
    BufSize - размер буфера при передаче файлов
    MainDir - корневая папка сервера

    function StopServer(id : dword) : dword; - остановка сервера.
    id - дескриптор сервера

    Пример использование в Delphi
    Разместить DLL в папке с программой.
    Code:
    const // коды ошибок
      SERVER_STATUS_OK                  = $FFFFFFF0;
      SERVER_STATUS_FOLDER_ERROR        = $FFFFFFF1;
      SERVER_STATUS_CREATE_SOCKET_ERROR = $FFFFFFF2;
      SERVER_STATUS_BIND_ERROR          = $FFFFFFF3;
      SERVER_STATUS_LISTEN_ERROR		  	= $FFFFFFF4;
      SERVER_STATUS_ALLOC_MEM_ERROR		  = $FFFFFFF5;
      SERVER_STATUS_CREATE_THREAD_ERROR	= $FFFFFFF6;
      SERVER_STATUS_ID_ERROR				    = $FFFFFFF7;
    // остановка сервера
      function StopServer(id : dword) : dword; stdcall; external 'WebServ.dll';
    
    // запуск сервера
      function StartServer(var id : dword; ip : dword; port : word; MaxClients : integer; TimeOut : dword; BufSize : dword; MainDir : pwidechar):dword; stdcall; external 'WebServ.dll';
    
    var
      Server_1 : dword; 
      Server_2 : dword;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      status : dword;
    begin
      // запустить сервер.
      status := StartServer(Server_1, 0, 666, 10, 30000, 4096, 'c:\');
      if status <> SERVER_STATUS_OK then
      begin
        ShowMessage('Server 1 Start Error. Code = ' + inttohex(status, 8));
      end;
    
      status := StartServer(Server_2, 0, 667, 10, 30000, 4096, 'd:\');
      if status <> SERVER_STATUS_OK then
      begin
        ShowMessage('Server 2 Start Error. Code = ' + inttohex(status, 8));
      end;
    
    end;
    
    // остановка
    procedure TForm1.Button2Click(Sender: TObject);
    var
      status : dword;
    begin
      status := StopServer(Server_1);
      if status <> SERVER_STATUS_OK then
      begin
        ShowMessage('Server 1 Stop Error. Code = ' + inttohex(status, 8));
      end;
    
      status := StopServer(Server_2);
      if status <> SERVER_STATUS_OK then
      begin
        ShowMessage('Server 2 Stop Error. Code = ' + inttohex(status, 8));
      end;
    end;
    
    
    Пример использование в С++
    Для С++ по подобной системе.
    Code:
    #define SERVER_STATUS_OK					0xFFFFFFF0
    #define SERVER_STATUS_FOLDER_ERROR			0xFFFFFFF1
    #define SERVER_STATUS_CREATE_SOCKET_ERROR	0xFFFFFFF2
    #define SERVER_STATUS_BIND_ERROR			0xFFFFFFF3
    #define SERVER_STATUS_LISTEN_ERROR			0xFFFFFFF4
    #define SERVER_STATUS_ALLOC_MEM_ERROR		0xFFFFFFF5
    #define SERVER_STATUS_CREATE_THREAD_ERROR	0xFFFFFFF6
    #define SERVER_STATUS_ID_ERROR				0xFFFFFFF7
    
    ULONG __stdcall StartServer(ULONG* id, ULONG ip, USHORT port, LONG MaxClients, ULONG TimeOut, ULONG BufSize, wchar_t * MainDir)
    ULONG __stdcall StopServer(ULONG id)
    .....................
     ULONG Server;
     
     StartServer(&Server_1, 0, 666, 10, 30000, 4096, L"c:\\");
    .......................
    
    На последок
    Если компилить как exe то размер будет 3,5 кила.
    В принципе работает норм. Покрайней мере при тестировании. Кто пробовал, отпишите.

    В архиве вы найдете файлы:
    WebServ.cpp - исходник DLL
    WebServ.def - вспомогательный файл
    WebServ.dll - откомпиленная DLL
    WebServ.h - хидер
    WebServ.vcproj - файл проекта

    http://slesh.name/uploads/WebServ.rar

    (С) SLESH 2009 )
     
    1 person likes this.
Loading...