merhaba arkadaşlar;
şimdi mysql veritabanından kullanıcı adı ve şifreyi çekip programa giriyorum fakat şöyle birşey istiyorum kullanıcı adı ve şifre ile tek o bilgisayarda açabilsin ve o kullanıcı adı ve şifresi programı açtığı ilk pcye tanımlansın programı başka bilgisayarda mevcut kullanıcı adı ve şifresini girince açamasın
Program lisanslama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Program lisanslama
Her ethernet kartının fabrikada verilen bir MAC numarası vardır. O bilgisayar takılı MAC numarasını (veya numaralarını) kaydederek bir kontrol sağlayabilirsin. Bilgisayarda takılı ethernet kartlarının MAC adreslerini almak için:
Kod: Tümünü seç
function GetMACAddress(PCName: string): string;
type
TASTAT = packed record
Adapt: NB30.TADAPTERSTATUS;
NameBuff: array[0..30] of TNAMEBUFFER;
end;
var
NCB: TNCB;
Tmp: string;
pASTAT: Pointer;
AST: TASTAT;
begin
// The IBM NetBIOS 3.0 specifications defines four basic
// NetBIOS environments under the NCBRESET command. Win32
// follows the OS/2 Dynamic Link Routine (DLR) environment.
// This means that the first NCB issued by an application
// must be a NCBRESET, with the exception of NCBENUM.
// The Windows NT implementation differs from the IBM
// NetBIOS 3.0 specifications in the NCB_CALLNAME field.
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := Chr(NCBRESET);
NetBios(@NCB);
// To get the Media Access Control (MAC) address for an
// ethernet adapter programmatically, use the Netbios()
// NCBASTAT command and provide a "*" as the name in the
// NCB.ncb_CallName field (in a 16-chr string).
// NCB.ncb_callname = "* "
FillChar(NCB, SizeOf(NCB), 0);
FillChar(NCB.ncb_callname[0], 16, ' ');
Move(PCName[1], NCB.ncb_callname[0], Length(PCName));
NCB.ncb_command := Chr(NCBASTAT);
// For machines with multiple network adapters you need to
// enumerate the LANA numbers and perform the NCBASTAT
// command on each. Even when you have a single network
// adapter, it is a good idea to enumerate valid LANA numbers
// first and perform the NCBASTAT on one of the valid LANA
// numbers. It is considered bad programming to hardcode the
// LANA number to 0 (see the comments section below).
NCB.ncb_lana_num := #0;
NCB.ncb_length := SizeOf(AST);
GetMem(pASTAT, NCB.ncb_length);
if pASTAT = nil then
begin
result := 'Memory allocation failed!';
exit;
end;
NCB.ncb_buffer := pASTAT;
NetBios(@NCB);
Move(NCB.ncb_buffer, AST, SizeOf(AST));
with AST.adapt do
Tmp := Format('%.2x-%.2x-%.2x-%.2x-%.2x-%.2x',
[ord(adapter_address[0]), ord(adapter_address[1]), ord(adapter_address[2]),
ord(adapter_address[3]), ord(adapter_address[4]), ord(adapter_address[5])]);
FreeMem(pASTAT);
Result := Tmp;
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)