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.
Daha sonra aşağıdaki kodları kullanarak kısayolumuzu oluşturabiliriz.
En önce kütüphaneyi dosyaya dahil edelim :
- using IWshRuntimeLibrary;
Daha sonra;
- private WshShellClass WshShell;
- private void btnShortcut_Click(object sender, System.EventArgs e)
- {
- WshShell = new WshShellClass();
- // Kısayol değişkeni
- IWshRuntimeLibrary.IWshShortcut MyShortcut;
- // Kısayolu oluşturacağımız yolu seçiyoruz. (Kısayolun yeri)
- MyShortcut = (IWshRuntimeLibrary.IWshShortcut)WshShell.CreateShortcut(@”C:\MyShortcut.lnk”);
- // 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
- private void KisayolOlustur(string link, string target)
- {
- string deskDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
- if (File.Exists(linkName))
- {
- return;
- }
- using (StreamWriter writer = new StreamWriter(linkName))
- {
- writer.WriteLine(“[InternetShortcut]“);
- writer.WriteLine(“URL=file:///” + target);
- writer.WriteLine(“IconIndex=0″);
- string icon = app.Replace(‘\\’, ‘/’);
- writer.WriteLine(“IconFile=” + icon);
- writer.Close();
- }
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.


bekir
18 Haziran 2011 at 07:01
denedimde tam olmadı yardım edebilirmisiniz