Çözüldü VB.NET Programa Özel Uzantı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Riduigu

Hectopat
Katılım
1 Ağustos 2019
Mesajlar
288
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Anlamayanlar için açıklayayım. Örnek txt gibi bir uzantı tıklayınca not defterinde yazılarıyla çıkması. Mesela uzantımı tiha diye seçtim. Bunun içindeki yazıları My Project/Settings/AA1 stringine atmak istiyorum. İnternette araştırdım, extension diye bambaşka bir şeyler çıktı. İngilizcem iyi değildir, belki yanlış yazmış olabilirim aratmak için kelimeyi.
 
Son düzenleyen: Moderatör:
Çözüm
Argument desteği nasıl yani hiç gerek duymadım heralde yada hatırlamıyorum.

Programınız çalışırken özel argümanlar alabilir.

Kodu örnek vereceğim. Programın exe üstüne sürüklenerek veya böyle doğrudan açılan dosyalar argüman olarak gönderilir, programın bunları algılaması lazım.

C#:
using System;

namespace Sample {
    // Program sınıfı ana sınıftır.
    // Proje dosyalarına baktığınızda Program.cs dosyasını görebilirsiniz.
    public static class Program {  
        //Main matodu varsayılan olarak programınızın çalıştırıldığı metotdur.
        // Normalde boş gelir ancak Args parametresini el ile ekliyoruz, adı başka bir şey de olabilir Args olmasına gerek yok.
        private static void Main(string[] Args) {
            //Argümanların dosya yolları olduğunu bilemeyiz.
            //Her bir argüman bir string olarak gelir.
            //Argüman sayısını öğrenmek için Args.Length kullanılabilir.
            //Her indis bir argüman içerir.
           
            //örnek olarak buradaki 0 indisinde yer alan argümanı aldım.
            string ZeroArg = Args[0];
           
            //Dikkat edilmesi gereken bazı noktalar var.
            //Mesela doğrudan argüman alım işlemleri gibi.
            //Yukarıdaki kod çalışır ancak argüman olmadığında hata verir.
            //Bunun için koşul kullanabilirsiniz.
            //Bu şekilde hatayı önlemiş olursunuz.
            if(Args.Length > 0) {
                string ZeroArg = Args[0];
            }
           
            //Bu kod uygulamayı gösterdiğiniz formu baz alarak başlatır.
            Application.Run(new MyForm());
           
            //Argümanları main metodunda işlemek istemiyor olabilirsiniz.
            // Bunun için başlatmadan önce işleyeceğiniz form'a gönderebilirsiniz.
            Application.Run(new MyForm(Args));
           
            //Bu şekilde, ancak constructor'a bu parametreyi göstermeniz gerekiyor.
            //public MyForm() metoduna paramatre olarak ekleyin.
            //public MyForm(string[] Arguments) gibi.
           
            //Tüm programdan erişilebilir olmasını istiyorsanız static bir değişkene atayabilirsiniz.
            //Bu sayede Program.DeğiskenAdi şeklinde argümanlara her daim ulaşabilirsiniz.
        }
    }
}

VB bilgim fazla yok, bu nedenle C# üzerinden örnek verdim. Visual Basic'e uyarlanması ne kadar farklı olur bilmiyorum kusura bakmayın.
Ne yapmak istediğini daha anlaşılır anlatmalısın. Mesela benim senin yazdıklarından anladığım, " .tiha diye bir dosyayı tıkladığın zaman Projects/Settings/AA1 dosyasına kendiliğinden yazılması. " Bir başkası daha farklı bir şey anlayabilir.

Belki biraz daha detaylı yazmalısın.
 
Sanırım dosya uzantılarından bahsediyorsunuz. Yani bir program yaptınız ve ona özel bir dosya uzantısı olsun istiyorsunuz, tam anlayamadım. Biraz daha detaylı lütfen.
 
Evet uzantıya tıklayınca program algılayıp dosya konumunu bulmasını istiyorum.

Bunun için özel dosya uzantınızı açacak olan varsayılan programı yaptığınız program olarak ayarlamanız gerekiyor. Programınızda ise Argument desteği olmalı, program gelen dosya yolunu açılışta algılayabilmeli ve işleyebilmeli.
 
Bunun için özel dosya uzantınızı açacak olan varsayılan programı yaptığınız program olarak ayarlamanız gerekiyor. Programınızda ise Argument desteği olmalı, program gelen dosya yolunu açılışta algılayabilmeli ve işleyebilmeli.
Ayarlamayı setup programından ayarlayacağım.
 
Ayarlamayı setup programından ayarlayacağım.

Evet, eğer olmaz ise o uzantıya sahip bir dosyayı açılmaya çalışıldığında windows program seçilmesini isteyecektir. ancak dediğim gibi sadece bunu yapmak yeterli değil. Argument desteğini eklemeniz gerekiyor. Eğer eklemezseniz windows o dosya yolu ile programınızı başlatır ancak program bunu algılamadığından normal bir şekilde açılır.
 
Evet, eğer olmaz ise o uzantıya sahip bir dosyayı açılmaya çalışıldığında windows program seçilmesini isteyecektir. ancak dediğim gibi sadece bunu yapmak yeterli değil. Argument desteğini eklemeniz gerekiyor. Eğer eklemezseniz windows o dosya yolu ile programınızı başlatır ancak program bunu algılamadığından normal bir şekilde açılır.
Argument desteği nasıl yani hiç gerek duymadım heralde yada hatırlamıyorum.
 
Argument desteği nasıl yani hiç gerek duymadım heralde yada hatırlamıyorum.

Programınız çalışırken özel argümanlar alabilir.

Kodu örnek vereceğim. Programın exe üstüne sürüklenerek veya böyle doğrudan açılan dosyalar argüman olarak gönderilir, programın bunları algılaması lazım.

C#:
using System;

namespace Sample {
    // Program sınıfı ana sınıftır.
    // Proje dosyalarına baktığınızda Program.cs dosyasını görebilirsiniz.
    public static class Program {  
        //Main matodu varsayılan olarak programınızın çalıştırıldığı metotdur.
        // Normalde boş gelir ancak Args parametresini el ile ekliyoruz, adı başka bir şey de olabilir Args olmasına gerek yok.
        private static void Main(string[] Args) {
            //Argümanların dosya yolları olduğunu bilemeyiz.
            //Her bir argüman bir string olarak gelir.
            //Argüman sayısını öğrenmek için Args.Length kullanılabilir.
            //Her indis bir argüman içerir.
           
            //örnek olarak buradaki 0 indisinde yer alan argümanı aldım.
            string ZeroArg = Args[0];
           
            //Dikkat edilmesi gereken bazı noktalar var.
            //Mesela doğrudan argüman alım işlemleri gibi.
            //Yukarıdaki kod çalışır ancak argüman olmadığında hata verir.
            //Bunun için koşul kullanabilirsiniz.
            //Bu şekilde hatayı önlemiş olursunuz.
            if(Args.Length > 0) {
                string ZeroArg = Args[0];
            }
           
            //Bu kod uygulamayı gösterdiğiniz formu baz alarak başlatır.
            Application.Run(new MyForm());
           
            //Argümanları main metodunda işlemek istemiyor olabilirsiniz.
            // Bunun için başlatmadan önce işleyeceğiniz form'a gönderebilirsiniz.
            Application.Run(new MyForm(Args));
           
            //Bu şekilde, ancak constructor'a bu parametreyi göstermeniz gerekiyor.
            //public MyForm() metoduna paramatre olarak ekleyin.
            //public MyForm(string[] Arguments) gibi.
           
            //Tüm programdan erişilebilir olmasını istiyorsanız static bir değişkene atayabilirsiniz.
            //Bu sayede Program.DeğiskenAdi şeklinde argümanlara her daim ulaşabilirsiniz.
        }
    }
}

VB bilgim fazla yok, bu nedenle C# üzerinden örnek verdim. Visual Basic'e uyarlanması ne kadar farklı olur bilmiyorum kusura bakmayın.
 
Çözüm
Değişken oluştur diyorsunuz yani. Program.cs gibi kısım yok vb.net de C# To VB.Net sitesinden dönüştürebilirsiniz.
Çözülmediği halde [Çözüldü] yapan moderator İŞİNİ ÖĞREN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diyorum.
 
Son düzenleme:
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı