26 Nisan 2018 Perşembe

C# ile lisanslama

Merhaba,

C# ile lisanslama yapacağımız postumuza hoşgeldiniz. Yapacağımız bu uygulamada her bilgisayara özel olan CPU id, Harddisk serial, anakart serial bilgilerini kullanarak internet olmasa dahi üretilebilecek bir anahtar ile lisanslama işlemi yapacağız.

Serial ve id bilgilerini almak için System.Management classını kullanacağız. İlk olarak sınıfı ekliyoruz.

Cpu ID almak için:

#region cpu id // Cpu id alma
     var cpuid = string.Empty;
     string sQuery = "SELECT ProcessorId FROM Win32_Processor";
     ManagementObjectSearcher oManagementObjectSearcher = new ManagementObjectSearcher(sQuery);
     ManagementObjectCollection oCollection = oManagementObjectSearcher.Get();
     foreach (ManagementObject oManagementObject in oCollection)
     {
         cpuid = (string)oManagementObject["ProcessorId"];
         break;
     }
#endregion cpu id

 Harddisk Serial almak için:

#region hdd serial // Harddisk serial alma
    var hddserial = string.Empty;
    ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""c:""");
    dsk.Get();
    hddserial = dsk["VolumeSerialNumber"].ToString();

#endregion hdd serial

Anakart Serial almak için:

#region motherboard serial // Motherboard serial alma
    var motherboardserial = string.Empty;
    ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
    ManagementObjectCollection moc = mos.Get();
    foreach (ManagementObject mo in moc)
    {
         motherboardserial = (string)mo["SerialNumber"];
         break;
    }

#endregion motherboard serial

Aldığımız bu bilgilerle bir anahtar kod oluşturacağız ve bu anahtar kodu şifreleme algoritmaları ile şifreleyip kullanıcıya göstereceğiz.

string anahtar = cpuid.Trim() + " " + hddserial.Trim() + " " + motherboardserial.Trim();
anahtar = Md5Sifrele(anahtar);
return anahtar;

burada Md5Sifrele() fonksiyonumuzun kodları

public static string Md5Sifrele(string str) // Md5 Şifreleme algoritması
{
       string result = string.Empty;
       try
       {
           MD5CryptoServiceProvider mD5CryptoServiceProvider = new MD5CryptoServiceProvider();
           byte[] bytes = Encoding.ASCII.GetBytes(str);
           byte[] array = mD5CryptoServiceProvider.ComputeHash(bytes);
           int capacity = (int)Math.Round((double)(array.Length * 3) + (double)array.Length / 8);
           StringBuilder stringBuilder = new StringBuilder(capacity);
           int num = array.Length - 1;
           for (int i = 0; i <= num; i++)
           {
                stringBuilder.Append(BitConverter.ToString(array, i, 1));
           }
           result = stringBuilder.ToString().TrimEnd(new char[]
           {
            ' '
           });
       }
       catch (Exception)
       {
       }
       return result;
}

Artık anahtarımız oluşturuldu. Bunu kendi projenizde kullanıcıya nasıl gösterecekseniz oraya yazdıracaksınız.

Bu anahtarı kontrol etmek ve lisans kodu oluşturmak için ise gelen anahtar kodun üstüne string ifadeler ekleyerek lisansımızı oluşturabiliriz. Bu işlem için ayrı bir uygulama yapıp kullanıcıdan gelen anahtarı alarak üstüne adınızı eklemek gibi bir işlem yapabilirsiniz. Kullanıcı tarafı projede de bunu aynı şekilde kontrol ederek işlemi tamamlamış oluruz. Bu kısımla alakalı örnek isterseniz diye dosyalarımı upload ediyorum.
Link: https://drive.google.com/drive/folders/1kmnfvPVcJoJ4y_QicecjWd2NapKpJItx?usp=sharing
içindeki dosyalardan 1 tanesi(Sifreleme) kullanıcı tarafı sınıfım, diğeri(SifrelemeLisans) lisans üretme programı sınıfımdır.

Umarım faydalı olur. Aklınıza takılan sorular var ise yorumdan yazabilirsiniz,
Teşekkürler..

22 Mart 2018 Perşembe

C# Timer Kullanımı

Timer Sınıfı C# dilinin anlık veya belirli aralıklarla istediğiniz kodlarınızı tekrar tekrar yapmanıza olanak sağlar.
Örnek olarak Formumuza bir label ekleyelim ve bu label'a saati yazdıralım.
İlk başta uygulamamıza araç kutusundan timer aracını ekleyerek işlemimize başlıyoruz. Özellikler kısmından interval değerini kaç milisaniyede bir yapmak istiyorsak onu yazıyoruz. Ben 1000 ms yani 1 saniye yaptım.












Yıldırım işaretine tıklayarak Events kısmında geçiyoruz. Timer aracı 1 adet event içermektedir. Çift tıklayarak eventımızı oluşturuyoruz.
















timer1_Tick oluştuktan sonra fonksiyon içerisine istediğiniz kodları yazabilirsiniz. Ben forma bir label ekleyerek bu label'a saati yazdıracağım.





Derleyip çalıştırdığımız zaman saniyede bir yenilenen bir saatimiz olmuş oldu.

C# ile Ping Kontrol

C# ile ping kontrolü yapabilmek için ilk olarak projemize 

using System.Net.NetworkInformation;
sınıfını ekleyerek işlemimize başlıyoruz.

Sınıftan bir örnek oluşturarak ping atıyor ve pinge dönen cevabı alıyoruz.
Ping pingKontrol = new Ping();
PingReply pingCevap= pingKontrol.Send("192.168.1.2");
Console.WriteLine(pingCevap.Status.ToString()); //Durumunu yazdırıyoruz.    
Üstteki örnekte 192.168.1.2 adresine ping attık ve geri dönen cevabı yazdırdık.
3 kere ping atalım ve eğer en az 2 tanesine geri dönüş olmazsa ekrana yazdıralım dersek:
Ping pingKontrol = new Ping();
PingReply pingCevap;
int sayac=0;
for(int i=0;i<3;i++)
{
  pingKontrol.Send("192.168.1.2");
  if(!pingCevap.Status.ToString.Equals("Success"))
     sayac++;
}
if(sayac<1)
{
  Console.WriteLine(pingCevap.Status.ToString()); //Durumunu yazdırıyoruz.

}

18 Ağustos 2015 Salı

NetBScanner ile ağdaki tüm bilgisayarları görme


Arkadaşlar merhaba;

Windows 7 deki paylaşım sınırının kalkmaması ve ağdaki bilgisayarları görme ihtiyacı üzerine araştırdığım ve bulduğum bir programı paylaşmak istiyorum. Bu program sayesinde modeminizden IP almış olan bütün cihazların adlarını, Mac adreslerini ve hatta ağ bağdaştırıcısının üreticisini dahi görebileceksiniz. Şimdiden söyleyeyim bu yazılım sadece görüntüleme amaçlıdır. Yani herhangi bir yönetim aracı bulunmamaktadır.


 İlk girişinizde ekrandaki gibi olacaktır görüntü. Burada aramak istediğiniz IP aralığını girip tamama bastığınızda kısa bir sürede ağınızdaki bütün bilgisayarları görüntüleyecektir.


                                                         indirmek için tıklayın

25 Eylül 2014 Perşembe

BitBucket ve TortoiseHg kullanımı

Bitbucket.org Nedir Nasıl Kullanılır?

Bitbucket.org internet sitesi bizim kaynak kodlarımızı yedeklemeye ve eski versiyonlarımızı tutmamıza olanak sağlar. Mesela bir web sitesi projesi geliştirdiğimizi düşünelim. Bu web sitesini yaptık ve bitbucket'a yükledik. Daha sonra sitemizde değişiklikler yaptık ve onları da yükledik. Eğer yaptığımız değişikliklerde istemediğimiz bir şey olursa eski versiyon kaynak kodlarına ihtiyacımız olabilir. Bitbucket burada devreye giriyor ve eski versiyon kodlarımızı kolayca yeniden indirmemizi sağlıyor. Bir çeşit yedekleme sistemi olarak da düşünebiliriz. Ya da 2 farklı kişi bir proje üzerinde değişiklik yapıyorsa aradaki iletişimi ve değişiklikleri bitbucket sayesinde hemen alabiliriz. Peki nasıl kullanacağız?

Bitbucket üyeliği ve TortoiseHg kurulumu


https://bitbucket.org/ sitesine giriyor ve üye oluyoruz. üye olduktan sonra resimde görülen ekran gelecektir. Buradan "Create Repository" butonuna tıklıyor ve dosyalarımız için depomuzu oluşturuyoruz.





Burada depomuza isim veriyoruz ve Repository type kısmını Mercurial yapıyoruz. Neden Mercurial diyecek olursak eğer dosyalarımızı eklemek ve almak için TortoiseHg adlı ücretsiz yazılımı kullanacağız. Ve bu yazılım Mercurial tipi dosyaları kabul edecektir. http://tortoisehg.bitbucket.org/download/ linkten bu programı indirebilirsiniz. 

Bitbucket  ile TortoiseHg bağlantısı ve first commit

TortoiseHg yazılımını kurduktan sonra masaüstüne bir dosya açın ve sağ tıklayın. TortoiseHg alt menüsünden "Clone"a tıklayın. Gelen ekrandaki Source kısmına bitbucket'taki işaretlediğim kısmı yazın tabiki bu benim depomun adresi siz kendi adresinizi yazacaksınız. Clone dediğinizde program sizden şifrenizi soracak bu sizin bitbucket üyeliğinizin şifresidir. Şifrenizi yazıp OK butonuna basın. artık oluşturduğunuz dosya birbucket ile bağlantılı hale geldi. Şimdi yükleyeceğiniz kodlarınızı klasörünüzün içine kopyalayın ve klasöre sağ tıklayıp HgWorkBench seçeneğini seçin. Gelen ekran resimdeki gibi olacaktır. Burada listedeki Working Directory'ye tıklayın ve altta ki dosyalarınızın hepsiniz seçin( yani bitbucketa yüklemek istediklerinizi.) Parent kısmına First Commit yazdım çünkü bu projenin ilk versiyonu ve ilk gönderimimiz. Sizde kendinize uygun birşey yazın ve göndere basın. Eğer şifrenizi sorarsa girin ve untracked gibi bir soru sorarsa "Add" butonuna basın. ve resimdeki gibi olduysa işler yolundadır. Listedeki altta kalan ve yeni hazırladığımız First Commit imizi seçip üstteki menüden en sağdaki Push butonuna basıyoruz. Bu butona bastığımızda dosyalarımız Bitbucket'a yüklenmiş oluyor. Artık istediğimiz bir bilgisayardan bu dosyaların klonunu alabiliriz. 


Devexpress Unable to resolve type hatası

Devexpress Unable to resolve type 'DevExpressReg.LicensePatcher, DevExpressReg, Version=12.1.0.1, Culture=neutral, PublicKeyToken=d6ff4ebaea2d8ac4' hatası

Evet arkadaşlar. Bu hata genel olarak kendi bilgisayarınız dışındaki bir projeyi çalıştırmaya çalıştığınızda karşılaşılan bir hatadır. Bu hatayı düzeltmek için ise licenses.licx dosyası içerisindeki herşeyi silmek gerekiyor. silin kaydedin ve tekrar çalıştırın. Eğer hata devam ediyorsa menülerden Devexpress->Project Converter çalıştırarak projenizi convert edin. Bu durumda hatadan kurtulmuş olmanız gerekiyor.