Respond needs javascript to run. To find out more click here
net » Serdar Demir
RSS
 

Posts Tagged ‘net’

C#’ ta uygulama kısayolu oluşturma

06 Mar

Kısayol SimgesiArkaplan-Resmi:com sitemi biliyor musunuz, bilmiyorum ? Eğer biliyorsanız bu site için yaptığım duvarkağıdı değiştiriciyi belki görmüşsünüzdür. Tee 10 ay önce yapmıştım o programı. Eksikleri çoktu hatta yeni bir sürüm üzerinde çalışıyordum. Bu arada eski sürümünü de güncelleyeyim dedim ki, şu yüzden: son zamanlarda indiren kişi sayısı anlayamadığım bir şekilde arttı. Bende yarım yamalak çalışan bir program kullanmasınlar diye eski sürümü güncelledim.

Yine başlangıç kısmı fazla uzun sürdü.

Sadete geleyim, programımın en büyük sorunu UAC engeline takılmasıydı. Çünkü ben programı Kayıt Defterinden başlangıç programlarına kendisini ekleyecek şekilde ayarlamıştım ve bu ayara erişmek için Yönetici izni gerekiyordu. Bugün düşündüm, bunu yapacağıma daha az gürültülü bir yol daha var: Başlat menüsünde ki Başlangıç içerisinde link yerleştirmek. Evet, konuya yaklaştığımızı sizde farketmişsinizdir. Bende araştırdım “bu nasıl yapılır?” diye. Karşıma iki yöntem çıktı, birincisi daha profesyonelce, ikinicisi ise gayet basit. İkisini de anlatayım.

1. Yol

Windows içerisinde ki bir COM nesnesinden faydalanıyoruz. Öncelikle Solution Explorer’ da References’ ın içerik menüsünden Add Reference’a tıklıyoruz. Sonra bu listeden Windows Script Host Object Model’ i seçiyoruz.

Referans EklemeReferans Ekle Formu

Daha sonra aşağıdaki kodları kullanarak kısayolumuzu oluşturabiliriz.
En önce kütüphaneyi dosyaya dahil edelim :

  1. using IWshRuntimeLibrary;

Daha sonra;

  1. private WshShellClass WshShell;
  2. private void btnShortcut_Click(object sender, System.EventArgs e)
  3. {
  4. WshShell = new WshShellClass();
  5. // Kısayol değişkeni
  6. IWshRuntimeLibrary.IWshShortcut MyShortcut;
  7. // Kısayolu oluşturacağımız yolu seçiyoruz. (Kısayolun yeri)
  8. MyShortcut = (IWshRuntimeLibrary.IWshShortcut)WshShell.CreateShortcut(@”C:\MyShortcut.lnk”);
  9. // Kısayolun hedefini belirliyoruz.

10.  // Burada uygulamanın çalıştırılabilir dosyası gösteriliyor. İsterseniz başka dosyanın yolunuda verebilirsiniz

11.  // Örnek : MyShortcut.TargetPath = @”C:\Windows\notepad.exe”;

12.  MyShortcut.TargetPath = Application.ExecutablePath;

13.  // Kısayol için açıklama. Çok gerekli değil ama koysanız iyi olur

14.  MyShortcut.Description = “Launch My Application”;

15.  // Kısayol simgesini belirtiyoruz. Bu satırı koymazsanız kısayolun simgesi uygulamanın simgesi ile aynı olur

16.  MyShortcut.IconLocation = Application.StartupPath + @”\app.ico”;

17.  // En son kayıt işlemi

18.  MyShortcut.Save();

19.  }
Birinci adım bu kadar.

2. Yol

Bu adım biraz daha kolay. Şöyle ki; normalde uygulamalar için kullanılan kısayol dosyaları(.lnk) çok karmaşıktır. Oysaki internet kısayol dosyaları(.url) çok basittirler. Bizde bir internet kısayolu oluşturacağız ama bu kısayolunun gideceği yer bilgisayarımızdaki bir dosya olacak. Evet yanlış duymadınız o bizim istediğimiz uygulama dosyası olacak.
Sizin için direkt kullanabileceğiniz bir fonksiyon vereyim

  1. private void KisayolOlustur(string link, string target)
  2. {
  3. string deskDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
  4. if (File.Exists(linkName))
  5. {
  6. return;
  7. }
  8. using (StreamWriter writer = new StreamWriter(linkName))
  9. {
  10. writer.WriteLine(“[InternetShortcut]“);
  11. writer.WriteLine(“URL=file:///” + target);
  12. writer.WriteLine(“IconIndex=0″);
  13. string icon = app.Replace(‘\\’, ‘/’);
  14. writer.WriteLine(“IconFile=” + icon);
  15. writer.Close();
  16. }

17.  }
Kullanımı:

1.  KisayolOlustur(“Kısayol dosyasının konumu”, “Kısayol dosyasının hedefi”);
İşte bu kadar. Umarım işinizi görür. Eğer işinizi görürse beni de görürsünüz artık.

 
 

C#.NET’te Diziler nedir resimli anlatım

14 Eki

C#.NET’TE DİZİLER

Değişkenlerin nasıl taımlanabileceğini bir önceki makalemizde görmüştük ama birçok durumda değişkenleri tek başına tanımlamamız yetersiz olacaktır

örneğin 1000 kişilk bir okuldaki tüm öğrencilere numara verecek olsak 1000 tane değişken tanımlamamız gerekecekti bu hem çok zaman alacaktı hemde çok yorucu olacaktı ve programın performansınıda çok kötü etkileyecekti işte tüm bu sebeplerden dolayı birçok programlaa dilinde olduğu gibi c# dilindede diziler mevcuttur.Dilerseniz şimdide dizi tanımlamayı görelim.

private void button1_Click(object sender,EventArgs e)

{

Double[] dizi; // Burada diziyi tanımlıyoruz

dizi=new Double[10]; // Burada da diziyi boyutlandırıyoruz

}

Burada 10 elemalı bir dizi tanımladık ilk elemanın indis numarası 0 son elemanın indis numarası ise 9 dur.

Yukarıda iki satırda yaptığımız dizi tanımlama işini tek satırda da yapabilirdik

Double[] dizi=new Double[10]; şeklinde.

Dizi Değişkenlerine Varsayılan Değer Atamak

Dizi değişkenleri taımlandığı anda ilk değer atanabilir bununla ilgili örneğimizi yapalım.

private void button1_Click(object sender,EventArgs e)

{

int[] dizi=new int[]{10,20,30};

}

Bu şekilde tanımlanan dizilerde boyut belirtmeye gerek yok eleman sayısı dizinin boyutunu belirtir.

Çok Boyutlu Diziler

Gelişmiş projelerde işimizi çok kolaylaştıracak olan çok boyutlu diziler tanımlama açısından tek boyutlu dizilerden pekte farklı olmamakla beraber biraz daha karmaşıktır.Dizilerin bizi birsürü değişken tanımlamaktan kurtardığı gibi çok boyutlu dizilerde  bizi birsürü dizi tanımlamaktan kurtarır.Şimdi bir çok boyutlu dizi tanımlayalım.

private void button1_Click(object sender,EventArgs e)

{

int[,] dizi=new int[2,3]{{1,2,3},{4,5,6}};

}

Yukarıda 2′ye 3′lük bir çok boyutlu dizi tanımladık burada

dizi[1,1]=1;

dizi[2,1]=4;

dizi[1,3]=3; değerlerini verir.

Çok Boyutlu Dizileri Yeniden Boyutlandırmak

C#’da diziler önce tanımlanıp daha sonra eleman sayısı belirlendiği için bu diziler aynı zamanda dinamik dizi olarak ta kullanılabilirler.Ancak yeniden boyutlandırılan bir dizinin önceki değerleri silinir.

private void button1_Click(object sender,EventArgs e)

{

int[,] dizi={{1,2,3},{4,5,6}};

dizi=new int[]{{10,20,30,40},{50,60,70,80}};

}

burada dizinin ilk değerleri silinerek sonradan girilen değerler dizin asıl değerleri oldu C# da dizileri istediğiniz kadar tekrar boyutlandırabilirsiniz.

Not:C#’da istenilen boyutta dizi tanımlanabilir ancak programcıların yazılmamış kanunlarına göre en fazla 5 boyutlu dizi tanımlanır daha fazlası programlar açısından yararından fazla zarar verir.


Şimdide 3 boyutlu bir dizi tanımlayaım ve bir değer atayalım.

private void button1_Click(object sender,EventArgs e)

{

Double[,,] dizi=new int[2,3,5];

dizi[1,2,4]=27;

dizi[2,1,1]=21;

int sonuc=dizi[1,2,4]+dizi[2,1,1]; // sonuç=48 olur

}

Jagged Diziler

Jagged diziler matrix dizlerden farklı olarak bellekten tasarruf etmemizi sağlar ve performansı olumlu yönde etkiler .Örneğin bir isim dizimiz olsun ve bu diziye 5  isim girecek olalım matrix dizi yaptığımızda dizinin boyunu en uzun isme göre belirleyecektik yani Ali Veli Hakan Kemalttin Mustafa isimlerini verecek olalım bu durumda en uzun isim olan Kemalletin’e göre uzunluğu belirleyecektik ve dizimizi şu şekilde tanımlayacaktık

dizi[5,10] diyecektik 5 isim ve en uzun isimin sığacağı 10 karkterlik sütun alanı.Bu durumda şöyle bir problemimiz olacaktı aslında problem sayılmaz ama fazladan bellek kullanmamıza neden olur.Peki ama nasıl ?

A l i _ _ _ _ _ _ _

V e l i _ _ _ _ _ _

H a k a n _ _ _ _ _

K e m a l e t t i n

M u s t a f a _ _ _

İşte tüm bu (_) ler fazladan kullanılan bellekler işte Jagged ile bu fazlalıklardan kurtulacağız.

Jagged dizileri tanımlanırken bazı durumlara dikkat etmemiz gerekiyor örneğin

Satır sayısı belli olacağı için dizi tanımlanırken satır sayısı yani ilk değer kesinlikle verilmeli

private void button1_Click(object sender,EventArgs e)

{

string[][] jagged_dizi=new string[5][];

jagged_dizi[0]=new string[3]; // ilk değer 3 karakter uzunluğunda (Ali)

jagged_dizi[1]=new string[4]; // ikinci değer 4 karakter uzunluğunda (Veli)

}

Dizilerle İlgili İşlemler

a)Dizinin Eleman Sayısını Öğrenmek

Bir dizinin eleman sayısını Length ile öğreniriz.

private void button1_Click(object sender,EventArgs e)

{

int[] dizi=new int[]{10,20,30};

int deger=dizi.Length; // 3 değerini döndürür

}

b)Dizinin Boyutunu Öğrenmek

Bir dizinin boyutunu öğrenmek için Rank kullanılır.

private void button1_Click(object sender,EventArgs e)

{

int[,,] dizi=new int[2,3,4];

int deger=dizi.Rank; // 3 değerini döndürür

}

 
No Comments

Posted in C#, Makaleler