怎样在程序本身计算你打开它了这个程序多少次?(30分)

  • 主题发起人 主题发起人 ksaiy
  • 开始时间 开始时间
K

ksaiy

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在程序本身计算你打开它了这个程序多少次?
 
要用到ini文件或者系统注册表或者数据库
我个人觉得操作ini文件 或者 系统注册表会比较容易。
 
做一个记录次数的变量,放在ini的文件中!。或者写到注册表中
 
写到注册表中比较好
 
用INI或是注册表都行。
 
可以把程序本身读到一个字符串中,然后在其末尾添加一个计数的标记来记录。

下面只是一个简单的事例,研究修改一下就可以实现你的要求了
procedure GetExeString(var Str: string);
var
FStream: TFileStream;
begin
FStream := TFileStream.Create(Str, fmOpenRead or fmShareDenyNone);
try
SetLength(Str, FStream.Size);
FStream.Position := 0;
FStream.ReadBuffer(Pointer(Str)^, FStream.Size);
finally
FStream.Free;
end;
end;

function AddRunTagToExe(Str, RTag: string): boolean;
var
ExeString, Str1: string;
MS: TMemoryStream;
i: integer;
begin
Result := False;
ExeString := Str;
GetExeString(ExeString);

Str1 := GetEofTag(ExeString);
if Str1 <> RTag then
begin
for i := Length(RTag) to 50 do
RTag := RTag + ' ';
ExeString := ExeString + RTag;
MS := TMemoryStream.Create;
try
ReNameFile(Str, Str + '.bak');
MS.WriteBuffer(Pointer(ExeString)^, Length(ExeString));
MS.SaveToFile(Str);
DeleteFile(Str + '.bak');
Sleep(500);
finally
MS.Free;
end;
Result := True;
end;
end;
 
后退
顶部