Diyelim ki bir uygulama geliştirdiniz. Belirli uzantıdaki dosyalar üzerinde işlem yapıyor. Ve kullanıcı bu uzantıdaki dosyaya tıkladığında uygulamanızın otomatik olarak açılmasını sağlamak istiyorsanız aşağıdaki kod işinize yarayacaktır.

RegistryKey key = Registry.ClassesRoot.CreateSubKey(".dna");
key.SetValue(null, "DnaFile.dna");
RegistryKey subkey = Registry.ClassesRoot.CreateSubKey("DnaFile.dna");
subkey.CreateSubKey("DefaultIcon").SetValue(null, @"%SystemRoot%\system32\msxml3.dll,0");
RegistryKey hedekey = subkey.CreateSubKey(@"shell\open\command");
hedekey.SetValue(null, "\"C:\\dna210506\\dnaPad\\dnaPad\\bin\\Debug\\dnaPad.exe\" \"%1\"");

subkey.CreateSubKey("DefaultIcon").SetValue(null, @"%SystemRoot%\system32\msxml3.dll,0");

kod ile *.dna uzantılı dosyanın kendisine özel bir icona sahip olmasını sağlıyor.

Yukardaki kod ile *.dna uzantılı dosyaya tıklandığında C:\...\dnaPad.exe yolundaki dnaPad.exe windows tarafından otomatik olarak çalıştırılır. Peki dosyayı uygulamaya parametre olarak windows geçiriyor da biz nasıl alacağız ?
Çözüm : string[] args = Environment.GetCommandLineArgs();
args[1] size ilgili dosyayı verecektir.