C# ile Yaptığınız programların Başkaları tarafından yasadışı kullanılmasını istemiyorsanız bir takım önlemler almalısınız.Bunların arasında Çeşitli Yöntemler bulunmaktadır.Örneğin Regedit'te kayıt tutma , şifreleme v.s.Bunlar Basit ve aşılabilir Yöntemlerdir.Ancak Donanımın Seri numarasını kullanmak ve buna göre Key oluşturmak daha etkili bir yöntemdir:))Bu örnekte Hard diskin Seri nosu ,tipi(IDE-SCSI),model(Samsung,Seagate,Maxtor) gibi özelliklerini elde etmek için C# ı kullanacağız :) Seri Numarasını Yazdığınız Programda Kullanarak Lisansız kullanıma bir nevii önlem alabilirsiniz.
using System;
using System.Management;
using System.Collections;
namespace HDD
{
class HardDisk
{
private object model=null;
private object tip=null;
private object seriNo=null;
public object Model
{
get
{
return model;
}
set
{
model=value;
}
}
public object Tip
{
get
{
return tip;
}
set
{
tip=value;
}
}
public object SeriNo
{
get
{
return seriNo;
}
set
{
seriNo=value;
}
}
}
/// <summary>
/// Main Yöntemini İçeren Sınıfı Tanımlıyoruz
/// C# da her program Main Yönteminden Başlar
/// </summary>
class Class1
{
/// <summary>
/// Main Yöntemi
/// </summary>
[STAThread]
static void Main(string[] args)
{
ArrayList hddCollection=new ArrayList();
ManagementObjectSearcher searcher=new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach(ManagementObject disk in searcher.Get())
{
HardDisk hdd=new HardDisk();
hdd.Model=disk["Model"];
hdd.Tip=disk["InterfaceType"];
hddCollection.Add(hdd);
}
searcher=new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
int index=0;
foreach(ManagementObject disk in searcher.Get())
{
HardDisk hdd=(HardDisk)hddCollection[index];
if(disk["SerialNumber"]==null) hdd.SeriNo="Tanımsız";
else hdd.SeriNo=disk["SerialNumber"];
++index;
}
Console.WriteLine();
Console.WriteLine("Hard Disk Bilgileriniz");
Console.WriteLine();
index = 1;
foreach(HardDisk hdd in hddCollection)
{
Console.WriteLine("{0}. Harddisk",index);
Console.WriteLine();
Console.WriteLine("Model:\t\t" + hdd.Model);
Console.WriteLine("Tip:\t\t" + hdd.Tip);
Console.WriteLine("Seri No:\t" + hdd.SeriNo);
Console.WriteLine();
++index;
}
Console.ReadLine();
}
}
}