Главная
Как сделать простой собственный Web браузер используя MFC. Часть 1

Совсем просто, как вы увидите. Далее я опишу  процесс разработки пошагово. 

  1. Для начала нужно создать новый проект.  Выбираем  File –New Project – MFC Application.  Вводим имя приложения  “mybrowser’.  Далее идем в  настройки проекта.  Здесь ставим следующее: “Application Type – Single Type” , “Project style – Windows Explorer”,  “Resource language - English”.(Китайский язык  пусть оставят сами китайцы, если хотят). Затем переходим «Generated Classes” и там  выбираем «Base Class” – «CHtmlView». Это очень важно, потому что  именно этот класс используется как базовый при создании нашего приложения.   CHtmlView  фактически и является  основой  «движка» нашего браузера. Жмем кнопку и переходим  в проект.
  2.  Для начала компилируем проект, и  смотрим что получилось. Мы видим, что загружается страница, ( если компьютер подключен к Интернете)    по адресу «http://www.msdn.microsoft.com/visualc/". Нам конечно такой «браузер» не подходит. Теперь займемся нашим главным делом.
 
Пишем собственный screencapturer для Windows. Часть 2

Во второй части нашей этой статьи мы начнем прямо с кода:

 
     void CscreencaptureDlg::GetScreen(void)
      {
              int Width=GetSystemMetrics(SM_CXSCREEN);
    //получем ширину  экрана
    int Height=GetSystemMetrics(SM_CYSCREEN);
    //получем высоту экрана
    CDC dc;
    //локальная переменная контекста устройства
    HDC h=::GetDC(NULL);
    //получаем дескриптор окна
    dc.Attach(h);
    //присоединемя его к переменной контекста устройства
    DC.CreateCompatibleDC(&dc);
    //размещаем данный контекст устройства в памяти
    CBitmap Win;
    //cоздаем локальную переменную класса CBitmap
    Win.CreateCompatibleBitmap(&dc,Width,Height);
           //cоздаем совместимый с bimap контекст устройства
    DC.SelectObject(&Win);
    //выбираем контекст устройства
    DC.BitBlt(0,0,Width,Height,&dc,0,0,SRCCOPY);
    //копируем указанную область экрана
    dc.Detach();
    //освобождаем локальный контекст устройства
    ::ReleaseDC(NULL, h);
    //SaveBitmap("c:\\bmp\\screen.bmp",(HBITMAP)Win,0);
    DC.DeleteDC();
    //освобождаем глобальный контекст устройства
    MessageBox("This screen was caputered well");
    //сообщение об успешном выполнени задачи
    
    }

 
...

Пройти сквозь горизонт. Увидеть ветра цвет.

И  око бури завернуть   в  пустой платок.

Так просто… Столько долгих лет

Едва горел надежды огонек.

И вот могу коснуться я твоей руки.

Все остальное блажь и пустяки.

 
Весна

                                                      Весна

 

                 Мокрый снег вместо занавеса и прочего.

                 Закрытый пункт из приставших к нему душ.

                Донна Анна,

                Донна Анна открывает дверной замок.

               

               Очарованье в трещинках уже,

               Рисунок нежный в нем погас, утерян.

               И  муж, усохший в сером  этаже.

               Остыло отвернувшись, повторяет:

               «Вроде неуверен».  

 

              Он прав. О Господи, о как же чует он,

             Ползущие морщины перемены!

             Пусть и подальше. Она молиться в зашторенный вагон.

             Чтоб пауза раздвинула подольше стянутые сцены.

 

              Она купается, как будто бы желает это смыть.

             Это не раз попавшееся под руку, скребущееся время.

              Ей хочется или родить, или в конец концов, завыть…

              Нельзя. Тем более, соседи слышать полностью программу «Время»

 

            Ничейный парень, подойдет и в занавесках,

            Понятную фигуру различит, а там прикинет ниже и лицо.

           - Вам что- то нужно мальчик?  - На таких довесках.

            Особенно, из далека, особенно в годах так ошибиться, ох легко.

 

 

 

 

       На что, на что потратилась, никак.

       Не успокоиться, и жалуется мама, бедная седая мама.

       Уколы, деньги, вот еще уколы, а про кошек  и собак…

      О каждой хватит для фатального недетского романа.

 

    Не то, что Командор, даже гипсовый засиженный птицами

    Ленин, не придет за сильным синьором при шпаге.

    Его нет.

   А муж, выпив и закусив, спит в пыльном плацкарте.

   Дождь вместо занавеса и прочего.

 

                  1987 г.

  

 

 
Поиск в стиле Ajax в приложении Ruby on Rails

Практически любой  web проект сейчас содержит поисковый движок.  В этой статье мы попытаемся

сделать собственный вариант,использующий Ajax и естественно, базу данных MySQL в качестве хранилища данных.
1. Для начала возьмем  уже  готовое приложение, для экономии времени.  Это что-то вроде ежедневника, со списком задач. 

База данных достаточно простая и имеет следующую структуру: что-то вроде ежедневника, со списком задач.  

База данных достаточно простая и имеет следующую структуру:

 
...

Мы в эту реку входим только раз.

Чем дальше берег, тем быстрей теченье.

Всего лишь имя остается после нас,

И звездный свет в холодном отраженье.

 
Создание программы - MySQL DatabaseBrowser. Часть 1
 
 
         Сейчас использование баз данных, в то числе и удаленных стало обычной и повседневной практикой. Очень часто используется и СУБД MySQL – свободной распространяемая система управления базами данных. В основном она используется для малых и средних предприятий, где успешно решает многие задачи. Ее бесплатность, доступность, стабильность в работе и прочие характеристики позволяет говорить об это СУБД как о массовой альтернативе таких баз как InterBase или SyBase. Последние версии этой программы, существенно расширяющие ее возможности предлагают решение многих проблем, с которым сталкиваются как администратор баз данных, так и обычный пользователь.
Однако, существуют так же и проблемы при работе с Windows, как обязательное наличие драйверов ODBC   для MySQL, если СУБД работает в этой среде. Стандартный клиент для MySQL не является удобным в настоящее время, так как является консольной программой. Опять же, требуется как минимум наличие установленной копии программы MySQL сервер на компьютере пользователя. Просмотр данных и простое редактирование также в стандартном клиенте не отвечает современным требованиям к интерфейсу. Решение целого ряда повседневных задач, предполагает стандартизацию  пользовательского интерфейса и  создание удобного юзабилити.
 Поэтому мы пришли к необходимости создания собственного клиентского приложения  Целью данного проекта является создание программы, которая бы позволяла выполнять наиболее общие операции с СУБД MySQL в операционной системе Windows, и при это не требовала наличия и настройки ODBC драйвера. Обычно это не умеет делать средний пользователь, и следовательно здесь требуется помощь администратора, что создает дополнительные трудности и самое главное, потерю рабочего времени.  Кроме того, эта программа должна уметь соединяться и работать с удаленным MySQL сервером.  Сам проект на данном этапе не является окончательной версией программы, поэтому реализуется с наиболее общими возможностями.
Далее будет описано шаг за шагом процесс создания проекта и с примерами исходного кода.


 
Создание системы аутентификации в Ruby on Rails с помощью pluginа acts_as_authenticated
Практически любое современное  более менее крупное  Web приложение,  использует систему аутентификации. Здесь мы научимся создавать такого рода вещи самостоятельно в проектах Ruby on Rails. Для этого воспользуемся  pluginом  acts_as_authenticated. Во фреймворке Ruby on Rails plugin – это расширения или дополнения возможностей Ruby on Rails. То бишь это некий код, который можно установить и использовать в проекте, чтобы получить доступ к некоторому количеству дополнительных возможностей. Далее описываем последовательность действий пошагово.
 
Создание файлов PDF файлов в приложениях Ruby on Rails
Динамическая генерация PDF файлов очень полезна, когда нужно создать файл отчета илисохранить данные в удобном виде. Для этого существует такой плагин в Ruby on Rails «pdf-writer». Итак, разберемся как с ним работать.
1.    Установим его в приложение. Для этого нужно ввести команду «gem install pdf-writer»
C:\myproject>gem install pdf-writer
Successfully installed pdf-writer-1.1.8
1 gem installed
Installing ri documentation for pdf-writer-1.1.8...
Installing RDoc documentation for pdf-writer-1.1.8...
2.  После установки, необходимо  отредактировать  файл «environment.rb»

И поместить в него такие строки:

require 'pdf/writer'

Mime::Type.register 'application/pdf', :pdf

Первая подключает  этот плагин  к  нашему приложению, а вторая устанавливает новый тип  данных Mime,  с которыми  оно будет работать.
3. На конец, самое главное,- собственно генератор PDF файлов в приложении. В файле app/controllers/application.rb  пишем вспомогательный метод:  

  def render_to_pdf(options = nil)
  data = render_to_string(options)
  pdf = PDF::HTMLDoc.new
  pdf.set_option :bodycolor, :white
  pdf.set_option :toc, false
  pdf.set_option :portrait, true
  pdf.set_option :links, false
  pdf.set_option :webpage, true
  pdf.set_option :left, '2cm'
  pdf.set_option :right, '2cm'
  pdf << data
  pdf.generate
  end

Этот метод  будет использоваться при генерировании PDF файл. Он принимает данные и превращает их в файл.
 

4.  Затем мы редактируем стандартный метод  «index» нашего приложения:

 def index
    @goods = Good.find(:all)
    respond_to do |format|
      format.html
      format.xml { head :ok }
      format.pdf { send_data render_to_pdf({ :action => 'index.rpdf', :layout => 'pdf_report' }) }
    end
  end

Здесь  мы организуем  форматирование  данных, получаемых из базы и перенапрваляем выход во вновь созданный вспомогательный метод «render_to_pdf».

5.  Далее изменим файл вида «index» и  вставим в него следующее:


<%= link_to 'PDF', formatted_goods_path(:pdf) %>

Линк вызывает метод контроллера для генерирования  PDF документа.


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



 
Перенос дампа базы данных в Sugar CRM.

Допустим, у нас есть   Sugar CRM  такая проблема: существует 2 инсталляции Sugar CRM,одна из которых старая, а другая новая версии. Нам необходимо перенести данные из старой базы данных MySQL  в новую версию  и сделать это аккуратно. Нет ничего проще.

1.       Создаем копию нужной нам базы данной, с помощью экспорта базы в SQL файл.

2.       В  новой инсталляции делаем новую базу данных.

3.       Импортируем  туда все данные из  полученного ранее дампа. Можно использовать любую работаю с MySQL программу или команду «source» в  командной строке.

4.       Редактируем PHP файл  «/config.php» : меняем имя базы данных, это переменная   'db_name ' в массиве 'dbconfig'.

5.       Далее открываем базу данных, находим там таблицу «config»,поле «sugar_version» и вводим туда номер версии новой инсталляции. Например, если там стояло значение «5.0.0», то ставим «5.2.0h».

Это все. Как видите, проблема решается очень просто и быстро.

 
Пишем собственный screencapturer для Windows. Часть 1

В повседневной работе с Windows иногда , однако, все же возникает потребность в получений копий снимков с текущего рабочего стола

Windows. Для этого есть масса свободных или платных программ, а мы напишем свою. Тем боле, займет это очень мало времени. Для этого нам

нужно только работающий компьютер с установленной операционной системой Windows, Microsoft Visual Studio 2003  и  конечно,  MSDN . Сама процедура разработка будет описана пошагово,  там же  будут  те части программного  кода, которые будут нами созданы.

 

  1. Как обычно, создаем шаблон программы. Для этого запускаем Microsoft Visual Studio 2003 , выбираем “New Project…”, затем “Visual C++”. В этом меню выбираем “MFC Application”. Выбираем путь где будет расположен наш проект и вводим название “screencapture”. (Хотя каждый может ввести любое название J )  Жмем «ОК». Дальше мы выбираем «Application Type» - “Dialog based”. Если кто желает подарить другу или подруге свою программу, то нужно выбрать  Use MFC in static library”. Все остальные настройки можно оставить без изменений.
 


© www.aurov.com - Личный сайт Александра Юрова 2008 All rights reserved
Tags
redirect constraints undef контекста таблицы bridge нашем lvitem хотя forward саму onclear cobject aboutclass tchar scaffold query nodselected onnewurlenter Добавим 4887 endif comctl32 адрес первых models called classwizard списка case

Joomla Modul

Главная
Статьи
Творчество
Галерея
Кто он-лайн
Jx Random Quote
"There is no reason anyone would want a computer in their home." -- Ken Olson, president, chairman and founder of Digital Equipment Corp., 1977.