Голосование

Какую версию Delphi Вы используете?

Delphi 4 и ниже
Delphi 5
Delphi 7
Delphi 2005
Delphi 2006
Delphi 2007
Delphi 2009
Delphi 2010



Посмотреть результаты
Другие опросы ...

 

Лента RSS, новости сайта Новости сайта
Лента RSS, новости форума Новости форума
  Bookmark and Share

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Кнопки, Ссылки и Баннеры ...

 


Automatic translation


English German French Italian Spanish
Portuguese Greece Japan Chinese Korean


Ссылки и Баннеры


скрыть

 

Delphi Sources

Delphi Sources

СТАТЬИ

 

. : Прединсталляторы и психология : .

 

Процесс пошагового описания процесса разработки
программы-прединсталлятора на Delphi


Прединсталляторы – малоизвестный класс программ, используемых в рекламных технологиях. Программы могут использоваться для создания большого количества показов рекламных баннеров или вебстраниц, формирования рекламного трафика, увеличения рентабельности вебсайтов с бесплатным программным обеспечением – freeware.
Прединсталляторы могут использовать разные алгоритмы работы – однократные, многократные, активные и пассивные.


1. Прединсталляторы

Это программы, исполняемые до инсталляции программного обеспечения.

Архивы бесплатного программного обеспечения идут на различные ухищрения, чтобы получить компенсацию за расходы на поддержание вебсервера и сервиса. Т.к. программы распространяются бесплатно, то зарабатывать средства приходится за счет размещения рекламы спонсоров. Прединсталляторы – тот класс программ, которые могут существенно облегчить финансовые проблемы владельцев freeware архивов.

Обычно, скачанное пользователем бесплатное или демонстрационное программное обеспечение - файл, имеет имя, отличное от SETUP, INSTALL, RUN или START. Чаще всего сейчас в имени файла используется сокращенное название программы (например, http://pipa.send-sms.ru/get.php/pipa.exe). Это позволяет вместе с архивом программы представить пользователю дополнительный EXE файл с одним из таких названий (setup.exe например).

В подавляющем количестве случаев процесс инсталляции будет начат пользователем с запуска именно этого (setup.exe) файла. При этом в файл (setup.exe) могут быть включены следующие функции:
- проверка версии операционной системы;
- показ рекламной информации или подключение рекламного сервиса;
- запуск инсталляции основной программы;
- удаление прединсталлятора из памяти.


2. На чем программировать

Если посмотреть на статистику счетчиков http://extreme-dm.com на любом из вебсайтов, то можно увидеть примерно такое распределение версий ОС у посетителей:

Распределение версий ОС у посетителей

Видно, что наибольший процент посетителей используют ОС Windows 2000 или Windows XP. Поэтому будем ориентироваться на структуру реестра именно этих OC.

В данном документе описан процесс разработки отдельных процедур программы для Интернет-рекламы.


3. Структура программы

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

В нашем примере программа-прединсталлятор будет состоять из прозрачной формы Form1 (Border Style = 0, Appearance = 0).

Структура программы


4. Подключение рекламного сервиса

Рекламный сервис может выполняться разными способами:

- обязательным однократным или многократным посещением web страницы разработчика или спонсора;
- размещением рекламного плаката в качестве wallpapers;
- записью ссылки на web сайт спонсора или разработчика в Favorites;
- каким-либо иным способом.

Внимание! В любом случае пользователь должен быть предупрежден об особенностях сервиса, включенного в программное обеспечение. Производить или не производить инсталляцию – выбор пользователя.

Рассмотрим вариант, когда программа-прединсталлятор устанавливает в качестве стартовой страницы для Internet Explorer страницу спонсора.

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

Листинг для записи в текстовый файл из программы на Delphi – в файле dlpp1.zip.

Текст Java-скрипта (всего 3 строчки):

var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Popup("Стартовая страница");
WSHShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page", "http://www.privet.com");

Напишем Delphi-код для записи JS скрипта в файл set-page.js.

Код:

procedure TForm1.FormActivate(Sender: TObject);
begin
AssignFile(f, 'c:\set-page.js');
Rewrite(f); // Создать и открыть файл
writeln(f, 'var WSHShell = WScript.CreateObject'+chr(40)+chr(34)+'WScript.Shell'+chr(34)+chr(41)+chr(59)); // Записать СТРОКУ в файл
writeln(f, 'WSHShell.Popup'+chr(40)+chr(34)+'Стартовая страница'+chr(34)+chr(41)+chr(59)); // Записать СТРОКУ в файл
writeln(f, 'WSHShell.RegWrite'+chr(40)+chr(34)+'HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page'+chr(34)+', '+chr(34)+'http://www.privet.com'+chr(34)+chr(41)+chr(59)); // Записать СТРОКУ в файл
CloseFile(f); // Закрыть файл
ShellExecute(Handle, 'open', 'c:\set-page.js', nil, nil, SW_HIDE); // Выполнить команду.
// Запустить скрипт
end;

Здесь ‘ + chr(34) + ‘ – код для записи кавычек в файл Java-скрипта. Аналогично – для скобок и точки с запятой - '+chr(34)+chr(41)+chr(59)’. ASCII-коды можно посмотреть на http://www.lookuptables.com.

А для работы с ShellExecute необходимо добавить объявление (выделено красным):
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI;

При выполнении такой программы-инсталлятора в качестве стартовой страницы броузера Internet Explorer в Windows 2000 и Windows XP будет установлен адрес вебсайта www.privet.com.

Полный проект смотрите в файле dlpp2.zip.

Здесь приведен самый простой вариант программы. В него надо добавить всего одну строку кода – запуск инсталляции основной программы. Это можно сделать просто включив в программу еще одну строку – например
для инсталляции приведенной выше программы PIPA.EXE:

ShellExecute(Handle, 'open', ' pipa.exe', nil, nil, SW_HIDE);

Кроме того, следует удалить с диска файл с Java-скриптом, как уже ненужный после начала инсталляции

ShellExecute(Handle, 'open', ' kill c:\set-page.js', nil, nil, SW_HIDE);

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

Программа-инсталлятор имеет удивительную эффективность для создания трафика – с самых «банальных» web-сайтов с посещаемостью 300-600 человек в день скачивается 100-150 экземпляров программ минимум. Можете представить сколько посещений вебсайта спонсора может обеспечить прединсталлятор.

Эффективность программы-прединсталлятора можно повысить производя так же и запись в Favorites броузера.
Ничего сложного в этом нет. Каждая запись в Favorites ("Избранное") – это специальный файл в особом каталоге на диске "C:\".


5. Запись в Favorites

Для этого необходимо работать с реестром Windows. Команды для работы с реестром.

function ReadString(const Name: String): String;

Возвращает строку значения параметра Name текущего ключа. При ошибке чтения генерируется исключение и возвращенное значение является ошибочным.

Пример:
uses Registry;
...
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('\My Registry\',true);
Edit1.Text:= Reg.ReadString('My');
Reg.CloseKey;
Reg.Destroy;
end;

Продемонстрируем функцию для чтения значения ключа реестра, в котором выше установили адрес стартовой страницы Internet Explorer (на форму Form1 нужно добавить кнопку Button1):

procedure TForm1.Button1Click(Sender: TObject);
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('\Software\Microsoft\Internet Explorer\Main\',true);
Form1.Caption:= '' + Reg.ReadString('Start Page');
Reg.CloseKey;
Reg.Destroy;
end;

Для работы с реестром необходимо добавить объявление (выделено красным):
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Registry, ShellAPI;

Полный Delphi-проект с этого этапа разработки смотрите в файле dlpp3.zip.


Рассмотрим Delphi код для создания записи в Favorites ("Избранное").

Пример для записи в «Избранное» Internet Explorer (папка Favorites) можно посмотреть здесь http://delphiworld.narod.ru/base/webbrowser_add_to_fav.html.

Напишем более простой код. Добавим его в процедуру TForm1.Button1Click:

procedure TForm1.Button1Click(Sender: TObject);
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\',true);
Form1.Caption:= '' + Reg.ReadString('Favorites') + '\' + 'Zagranica.url';
ee:= Reg.ReadString('Favorites') + '\' + 'Hello.url';
Reg.CloseKey;
Reg.Destroy;

Form1.Caption:= ee;

//Создать новую запись в Favorites
//C:\Documents and Settings\Administrator\Favorites

AssignFile(f, ee);
Rewrite(f); // Создать и открыть файл
writeln(f, '[DEFAULT]');
writeln(f, 'BASEURL= http://www.geocities.com/aboutsoft/');
writeln(f, '[InternetShortcut]');
writeln(f, 'URL= http://www.geocities.com/aboutsoft/');
writeln(f, 'Modified=70037C581883C001A1');
CloseFile(f); // Закрыть файл
end;

Полный Delphi проект программы смотрите в файле dlpp4.zip.

В принципе, здесь создан еще один коммерчески ориентированный продукт. Представьте себе веб-сайт-каталог тематических ссылок. Например список ссылок на mp3 музыкальные сайты. Используя приведенный выше VB код, можно создать такой каталог тематических ссылок на компьютере, в Favorites. Создается вложенная папка, например, «MP3 ссылки». И в неё помещаются записи с ссылками на тщательно проверенные каталоги MP3 музыки. Программа для создания таких каталогов – вполне коммерческий продукт. Новый продукт. Эта ниша на рынке еще не занята. Кроме того, программа может быть немного усовершенствована и получать обновления списка вебсайтов с вебстраницы разработчика. Технически, это очень просто.

6. Wallpapers – рекламные обои

В предыдущем руководстве программиста показано, что обои (оформление рабочего стола) тоже могут использоваться в рекламных технологиях.

procedure TForm1.Button1Click(Sender: TObject);
var
Picture: TPicture;
Desktop: TCanvas;
X, Y: Integer;
begin
// Objekte erstellen
// create objects
Picture := TPicture.Create;
Desktop := TCanvas.Create;

// Bild laden
// load bitmap
Picture.LoadFromFile('bitmap1.bmp');

// Geratekontex vom Desktop ermitteln
// get DC of desktop
Desktop.Handle := GetWindowDC(0);

// Position des Bildes
// position of bitmap
X := 100;
Y := 100;

// Bild zeichnen
// draw bitmap
Desktop.Draw(X, Y, Picture.Graphic);

// Geratekontex freigeben
ReleaseDC(0, Desktop.Handle);

// Objekte freigeben
// release objects
Picture.Free;
Desktop.Free;
end;

Пример можно посмотреть здесь http://delphiworld.narod.ru/base/bmp_to_desktop.html.
Обратите внимание, что графический файл для Desktop должен быть в формате "*.bmp".


7. Об эффективности

Эффективность использования программ-прединсталляторов чрезвычайно высока. Свыше 70% программ инсталлируются сразу после скачивания и без всякого анализа состава программного пакета. В лучшем случае читается файл "readme.txt".

Рекламную эффективность программ-прединсталлятров можно значительно увеличить используя специальный инсталлируемый на компьютер модуль для загрузки рекламы. В таком случае программа превращается в разновидность Adware и может вызвать у пользователей негативную реакцию. Тем не менее, рынок такого программного обеспечения развит и спонсорам предлагаются программные модули для загрузки рекламы по цене от 300$.

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

Руководство написано для широкого круга лиц – программистов, администраторов, пользователей бесплатного ПО.
 

Дата: 16.08.2005, Автор: Val.






Назад

 

Скачать статью с исходником (81 Кб)

   

 
















































































































































































































 

© 2004-2016 "DS"

E-mail: Отправить письмо


ВКонтакте   Twitter   Facebook