27 Ocak 2011 Perşembe

Read, Write and Delete from registry with C#

Bu örneğimizde Regedit(Kayıt Düzenleyiciye) Kayıt okuma,yazma ve silme işlemleri yapan methodları tanımlayacağız.


public string Read(string KeyName)
{
    RegistryKey rk = baseRegistryKey ;

    RegistryKey sk1 = rk.OpenSubKey(subKey);

    if ( sk1 == null )
    {
        return null;
    }
    else
    {
        try 
        {
            return (string)sk1.GetValue(KeyName.ToUpper());
        }
        catch (Exception e)
        {
            ShowErrorMessage(e, "Reading registry " + KeyName.ToUpper());
            return null;
        }
    }
}
 
public bool Write(string KeyName, object Value)
{
    try
    {

        RegistryKey rk = baseRegistryKey ;

        RegistryKey sk1 = rk.CreateSubKey(subKey);

        sk1.SetValue(KeyName.ToUpper(), Value);

        return true;
    }
    catch (Exception e)
    {

        ShowErrorMessage(e, "Writing registry " + KeyName.ToUpper());
        return false;
    }
} 

public bool DeleteKey(string KeyName)
{
    try
    {
        RegistryKey rk = baseRegistryKey ;
        RegistryKey sk1 = rk.CreateSubKey(subKey);

        if ( sk1 == null )
            return true;
        else
            sk1.DeleteValue(KeyName);

        return true;
    }
    catch (Exception e)
    {
        ShowErrorMessage(e, "Deleting SubKey " + subKey);
        return false;
    }
}

26 Ocak 2011 Çarşamba

Convert Binary To Image

Aynı şekilde; Küçük bir method örneği path ini verdiğimiz Binary'i Image olarak convert ediyor.

public static Image BinaryToImage(System.Data.Linq.Binary binaryData)
{
    if (binaryData == null) return null;

    byte[] buffer = binaryData.ToArray();
    MemoryStream memStream = new MemoryStream();
    memStream.Write(buffer, 0, buffer.Length);
    return Image.FromStream(memStream);
}

Convert Image To Binary

Küçük bir method örneği path ini verdiğimiz image ı Binary e convert ediyor.


public static byte[] ImageToBinary(string imagePath)
{
    FileStream fileStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
    byte[] buffer = new byte[fileStream.Length];
    fileStream.Read(buffer, 0, (int)fileStream.Length);
    fileStream.Close();
    return buffer;
}

Custom Exceptions in C#.NET

Genellikle, büyük ölçekli projeler için (birbirine çok modüller de olabilir tabi), bir özel istisnalar tanımlamalıdır. Onun için küçük bir kod parçacıkları düşündüm umarım işinize yarar.


[Serializable]
public class CustomException : Exception
{
    public CustomException()
        : base() { }
    
    public CustomException(string message)
        : base(message) { }
    
    public CustomException(string format, params object[] args)
        : base(string.Format(format, args)) { }
    
    public CustomException(string message, Exception innerException)
        : base(message, innerException) { }
    
    public CustomException(string format, 
Exception innerException, params object[] args)
        : base(string.Format(format, args), innerException) { }
    
    protected CustomException(SerializationInfo info, 
StreamingContext context)
        : base(info, context) { }
}
 
Using:
 
throw new CustomException();
 
throw new CustomException(message);
 
throw new CustomException("Exception with parameter value 
                          '{0}'", param);
throw new CustomException(message, innerException); 
 
throw new CustomException("Exception with parameter value 
                          '{0}'", innerException, param) 

25 Ocak 2011 Salı

Java DES algoritmasını kullanarak deşifreleme işlemleri

package org.kodejava.example.security;

import java.io.*;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SealedObject;
import javax.crypto.SecretKey;

 
public class ObjectEncrypt {
    //
    //İleride kullanılması için dosya deposu objesi yaratılıyor.
    //
    private static void writeToFile(String filename, Object object) throws Exception {
        FileOutputStream fos = null;
        ObjectOutputStream oos = null;

 
        try {
            fos = new FileOutputStream(new File(filename));
            oos = new ObjectOutputStream(fos);
            oos.writeObject(object);
            oos.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (oos != null) {
                oos.close();
            }
            if (fos != null) {
                fos.close();
            }
        }
    }

     
    public static void main(String[] args) throws Exception {
        //
        // Geçici anahtar geçici bir dosyaya yazılır
        //
        SecretKey key = KeyGenerator.getInstance("DES").generateKey();
        writeToFile("secretkey.dat", key);

 
        //
        // Şifreleme olması için nesne yaratılır
        //
        Cipher cipher = Cipher.getInstance("DES");
        cipher.init(Cipher.ENCRYPT_MODE, key);

 
        //
        // Şifrelemeyi SealedObject kullanarak yapıyoruz.(mesaj yazılır)
        //
        SealedObject sealedObject = new SealedObject("THIS IS A SECRET MESSAGE!", cipher);

 
        //
        // binary (ikili dosya) olarak nesneye yazılır
        //
        writeToFile("sealed.dat", sealedObject);
    }
}

Java DES algoritmasını kullanarak şifreleme işlemleri



package org.kodejava.example.security;
import java.io.*;
import javax.crypto.SecretKey;
import javax.crypto.Cipher;
import javax.crypto.SealedObject;

public class ObjectDecrypt {
    //
    // Nesneyi okumak için dosyayı bir yerde saklanmalı
    //
    private static Object readFromFile(String filename) throws Exception {
        FileInputStream fis = null;
        ObjectInputStream ois = null;
        Object object = null;
        try {
            fis = new FileInputStream(new File(filename));
            ois = new ObjectInputStream(fis);
            object = ois.readObject();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (ois != null) {
                ois.close();
            }
            if (fis != null) {
                fis.close();
            }
        }
        return object;
    }
    public static void main(String[] args) throws Exception {
        //
        // Önceden oluşmuş olan secretkey okunur.
        //
        SecretKey key = (SecretKey) readFromFile("secretkey.dat");

        //
        // Sealed objesi okunur
        //
        SealedObject sealedObject = (SealedObject) readFromFile("sealed.dat");

 
        //
        // Şifreyi çözmesi beklenen nesne yazılır
        //
        String algorithmName = sealedObject.getAlgorithm();
        Cipher cipher = Cipher.getInstance(algorithmName);
        cipher.init(Cipher.DECRYPT_MODE, key);

 
        String text = (String) sealedObject.getObject(cipher);
        System.out.println("Text = " + text);
    }
}

24 Ocak 2011 Pazartesi

Write to Event Log

.Net te basitçe Event log yazmak için özet bir extension method örneği;

public static bool WriteEventLog(string Message)

        {

            try

            {

                string sSource = "My Custom Application";

                string sLog = "Application";

                string sEvent = Message;



                if (!EventLog.SourceExists(sSource))

                    EventLog.CreateEventSource(sSource, sLog);



                EventLog.WriteEntry(sSource, sEvent,
EventLogEntryType.Error, 234);

                return true;

            }

            catch { return false; }

        }

17 Ocak 2011 Pazartesi

NetworkChange.NetworkAddressChanged Sınıfının Kullanımı

Command(cmd) satırından ipconfig /renew in programatik olarak kullanımı

using System;
using System.Net.NetworkInformation;

class MainClass
{
 
    private static void NetworkAddressChanged(object sender, EventArgs e)
    {
        Console.WriteLine("Mevcut IP Adresi:");

        foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
        {
            foreach (UnicastIPAddressInformation addr in ni.GetIPProperties().UnicastAddresses) {
                Console.WriteLine("Degistirilen IP Adresi: {0}", addr.Address );
            }
        }
    }

    public static void Main(string[] args)
    {
        NetworkChange.NetworkAddressChanged += NetworkAddressChanged;
    }
}

NetworkInterface sınıfında Speed Kullanımı

Local ağınızın hızının bulunabileceği örnek kullanım;

static void Main()
        {
            if (NetworkInterface.GetIsNetworkAvailable())
            {
                NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();

                foreach (NetworkInterface ni in interfaces)
                {
                    Console.WriteLine(" Speed: {0}", ni.Speed);
                }

            }
            else
            {
                Console.WriteLine("NO Network Available");
            }
            Console.ReadLine();
        }