Merhaba, Yaptığım programa tarihe göre süre vermek istiyorum, fakat kişi bilgisayar tarihini geri alınca belirlediğim tarih yalan oluyor,
bilgisayar tarihini geri alınsa bu kontrolün doğru çalışmasını nasıl engellerim...
procedure TForm1.KontrolClick(Sender: TObject);
begin
if Date > StrToDate('18.08.2015') then
begin
Application.MessageBox(pChar('deneme süresi bitti!'), 'Dikkat!',
MB_Ok or MB_ICONQUESTION);
end
else
begin
Demo sürüm tarih kontrol
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 189
- Kayıt: 30 Eyl 2013 10:17
Re: Demo sürüm tarih kontrol
programin ilk calistigi tarihi bir dosyaya veya register a yazdirin. programin her acilisinda da bu dosyadaki degerle gunun tarihini karsilastirin. gunun tarihi dosyadakinden kucukse tarih degistirilmis demektir. programi actirmazsiniz. eger buyukse yani sonraki gunlerden birine gecilmisse programi calistirirsiniz ve dosyadaki degeri yeni tarih olacak sekilde degistirirsiniz.
tabi kisi ilk gunden itibaren tarihi hep sabit tutarsa. program calistirmadan her defasinda ayni gune ayarlarsa . bu yontem birseye yaramaz
tabi kisi ilk gunden itibaren tarihi hep sabit tutarsa. program calistirmadan her defasinda ayni gune ayarlarsa . bu yontem birseye yaramaz
Re: Demo sürüm tarih kontrol
http://sourceforge.net/projects/tponguard/
bu component ı incele bence.
bu component ı incele bence.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: Demo sürüm tarih kontrol
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ClientSocket1: TClientSocket;
Edit1: TEdit;
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function ntohl(const value: cardinal): cardinal;
asm
mov edx, eax
mov ecx, eax
shl ecx, 16
and eax, $0000ff00
or eax, ecx
mov ecx, edx
shl eax, 8
and ecx, $00ff0000
shr edx, 16
or ecx, edx
shr ecx, 8
or eax, ecx
end;
function TimeZoneBias: Double;
var
ATimeZone: TTimeZoneInformation;
begin
if (GetTimeZoneInformation(ATimeZone) = TIME_ZONE_ID_DAYLIGHT) then
begin
result := ATimeZone.Bias + ATimeZone.DaylightBias;
end
else
begin
result := ATimeZone.Bias + ATimeZone.StandardBias;
end;
Result := Result / 1440;
end;
function SecsToTime(ASecs: Cardinal): TDateTime;
const
SECS_PER_DAY = 24 * 60 * 60;
UNIX_OFFSET = 25569;
begin
Result := ntohl(ASecs) / SECS_PER_DAY + encodedate(1900, 1, 1) - TimeZoneBias;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
buf: Cardinal;
begin
Socket.ReceiveBuf(buf, sizeof(buf));
edit1.Text:=(formatdatetime('dd.mm.yyyy hh:nn:ss', SecsToTime(buf)));
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientSocket1.Host := 'time-A.timefreq.bldrdoc.gov';
ClientSocket1.Port := 37;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Clear;
ClientSocket1.Open
end;
procedure TForm1.KontrolTimer(Sender: TObject);
begin
if edit1.Text:=('18.08.2015') then
begin
Application.MessageBox(pChar('deneme süresi bitti!'), 'Dikkat!',
MB_Ok or MB_ICONQUESTION);
end
else
begin
end;
end;
end.