Привет ВСЕМ. Это первый выпуск
рассылки о программировании на DELPHI.
Если у вас есть предложения или замечания, прошу писать мне ForDelphi@Narod.ru
В этом выпуске
1)Регистрация программ или как
получить денег за свои проекты.-->
2)Функция находящая диррикторию Windows--> 3)2 новых компонента-->
Регистрация
программ
Написав нужную (или
не нужную) программу, каждый программист задумывается:"А каким бы способом
денег за это получить?" Тут есть два варианта:
1)Продать исходник(хотя кто его купит?)
2)Или сделать программу условно бесплатной(ShareWare) и просить за неё 10000$....;))))))
О втором способе мы сейчас и поговорим.
Есть несколько типов ShareWare программ, одни ограничивают юзера сроком использавония,другие
функциями, а третьи и тем и другим....и т.д.Пускай наша программа будет ограничивать
юзера кол-вом возможных запусков и функциями.Для проверки регистрации будем
использовать ini-файлы,если значение Registred будет равным'No'(то есть если
файла небудет), то начнётся процес показывания предупреждений и подсчёта кол-ва
запусков.Поместите на форму 6 чек-боксов и назовите их : c1, c2, c3, c4, c5,c6.
type
TForm1 = class(TForm)
C1: TCheckBox;
C3: TCheckBox;
C2: TCheckBox;
C4: TCheckBox;
C6: TCheckBox;
C5: TCheckBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);{Процедура вызывается при инициализации
формы}
Var F:TIniFile;{INI-файлы}
I:String;
A,n:integer;
Begin
F:=TIniFile.Create('C:\Test.ini');{Создали объект}
I:=F.ReadString('Reg','Registred','No');{Читаем данные в переменную I,если
такой строчки в файле нет, то функция возвращает ''}
if I='No' then{Проверка}
begin
A:=F.ReadInteger('Reg','Starts',1);
if a<5 then
begin
F.WriteInteger('Reg','Starts',A+1);
end;
N:=F.ReadInteger('Reg','Starts',1);
if N=5 then
begin
c2.Enabled:=false;
c4.Enabled:=false;
c6.Enabled:=false;
ShowMessage('Запуски закончились,!!!Зарегестрируйте программу!!!');
halt
end;
c1.Enabled:=false;
c3.Enabled:=false;
c5.Enabled:=false;
ShowMessage('Зарегестрируйте программу!');
end;
end;
end.
Конечно C:\Test.ini
-это глупо,но можно файл назвать SysREG.nqw и запихать его в C:\Windows\System32
и тогда мало вероятно, что его найдут.Но и тут есть одна загвоздка:А если
у юзера Windows находиться не в каталоге C:\Windows, а в каком-нибудь V:\Chernobol.
Тут нам поможет следующая функция, она находит каталог, где находится Windows
Function TForm1.GetWinDir:string;
var p:pchar;
begin
GetMem(p,255);
GetWindowsDirectory(p,254);
result:=(p);
Freemem(p);
end;