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

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:
    321
    Likes Received:
    98
    Reputations:
    12
    смысл писать примеры из книжек? мой предыдущий вопрос был мягко говоря иронией.
     
    1. De-visible

      De-visible [NDC] Network develope c0ders

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

        funnyNe0 New Member

        Joined:
        21 Aug 2008
        Messages:
        0
        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-виде?
         
        1. funnyNe0

          funnyNe0 New Member

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

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

            MbILLIKA New Member

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

              d_x Banned

              Joined:
              25 Mar 2008
              Messages:
              558
              Likes Received:
              650
              Reputations:
              210
              StepFucker

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

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

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

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

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

                src&bin
                 
                1. 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.
                  1. [aciD]

                    [aciD] Banned

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

                      Gar|k Moderator

                      Joined:
                      20 Mar 2009
                      Messages:
                      1,166
                      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.
                      1. BrainDeaD

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

                        Joined:
                        9 Jun 2005
                        Messages:
                        774
                        Likes Received:
                        292
                        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
                        1. ichechen

                          ichechen New Member

                          Joined:
                          16 Oct 2009
                          Messages:
                          33
                          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
                           
                          1. ichechen

                            ichechen New Member

                            Joined:
                            16 Oct 2009
                            Messages:
                            33
                            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.
                            1. }{AS 99

                              }{AS 99 Member

                              Joined:
                              18 Sep 2009
                              Messages:
                              42
                              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.
                              1. Chrome~

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

                                Joined:
                                13 Dec 2008
                                Messages:
                                936
                                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.
                                1. ange007

                                  ange007 Member

                                  Joined:
                                  26 Aug 2009
                                  Messages:
                                  28
                                  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.
                                  1. \\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.
                                    1. slesh

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

                                      Joined:
                                      5 Mar 2007
                                      Messages:
                                      2,702
                                      Likes Received:
                                      1,224
                                      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.
                                      1. slesh

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

                                        Joined:
                                        5 Mar 2007
                                        Messages:
                                        2,702
                                        Likes Received:
                                        1,224
                                        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.
                                        1. slesh

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

                                          Joined:
                                          5 Mar 2007
                                          Messages:
                                          2,702
                                          Likes Received:
                                          1,224
                                          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...
                                          Similar Threads - Полезные программы собственные
                                          1. Peja
                                            Replies:
                                            0
                                            Views:
                                            3,134