C# Registry DefaultIcon İşe Yaramıyor

Bu konuyu okuyanlar

023

Profesör
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,593
Puanları
113
Yaş
16
C#:
            Registry.ClassesRoot.CreateSubKey(".hellimg").SetValue(null, "HELLIMGdosyasi.hellimg");
            RegistryKey rk = Registry.ClassesRoot.CreateSubKey("HELLIMGdosyasi.hellimg");
            string[] splitted = Environment.GetCommandLineArgs()[0].Split('\\');
            string basedirectory = "a";
            for (int i = 0; i < splitted.Length - 2; i++)
            {
                basedirectory = basedirectory + "\\" + splitted[i];
            }
            basedirectory = basedirectory.Substring(1, basedirectory.Length - 1);
            rk.CreateSubKey("DefaultIcon").SetValue(null, basedirectory + "\\hellimg.ico");
            rk.CreateSubKey(@"shell\open\command").SetValue(null, Environment.GetCommandLineArgs()[0]);
Sondan İkinci Satır Çalışmıyor. Projemin exe Dosyasının Bulunduğu Dizinde Bir .ico Dosyası Var, .hellimg Dosyalarına Bu İkonun Verilmesini İstiyorum Ama Olmuyor. Yönetici İzinleriyle Alakası Yok, Son Satır Çalışıyor. Ayrıca Bu Dosyaya Çift Tıklayıp Açtığımda Dosyanın İçeriğini Okumuyor. Çift Tıklanan Dosya Şu Değil mi? = Environment.GetCommandLineArgs()[1]
Edit: Dosya Okumama Sorununu Çözdüm.
Edit2: Çözememişim.
 
Son düzenleyen moderatör:

CapScroLL

Profesör
Katılım
22 Ağustos 2014
Mesajlar
3,657
Reaksiyon puanı
2,683
Puanları
113
Yaş
26
Try-catch ile hata yakalamayı denediniz mi? Eğer denediyseniz ne gibi bir sonuç döndürüyor?
 

023

Profesör
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,593
Puanları
113
Yaş
16
özel durum işlenemedi hatası:
1597098703611.png

try catch:
1597098910804.png

Mesaj otomatik birleştirildi:

ikon olayında hata yok. try catch'de de yok vstudio'da da.
 
Katılım
6 Eylül 2018
Mesajlar
2,095
Reaksiyon puanı
3,027
Puanları
113
Ben benzer bir sorunla karşılaşıyordum, yönetici hakları ile çalıştırdığından emin ol sonra base directory üzerinden resmi işaret etmek yerine resmin ayrıntılarından tam yolunu kopyala yapıştır. Ben Linux'ta bu sorunla hep karşılaşıyorum Java'da, belki bir alakası vardır :) Kolay gelsin
 

CapScroLL

Profesör
Katılım
22 Ağustos 2014
Mesajlar
3,657
Reaksiyon puanı
2,683
Puanları
113
Yaş
26

023

Profesör
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,593
Puanları
113
Yaş
16
Eğer uygulamanın yolunu alacaksanız 0 indexini çekmeniz lazım, 1 indexi olmadığı için böyle bir hata alıyorsunuz.
Ben bir dosya türünü (hellimg) Programımla İlişkilendirdim, Programım O Dosya Yoluyla Açıldığında O Dosyanın İçeriği Okunsun İstiyorum. Ne Yapabilirim?
Mesaj otomatik birleştirildi:

Ben benzer bir sorunla karşılaşıyordum, yönetici hakları ile çalıştırdığından emin ol sonra base directory üzerinden resmi işaret etmek yerine resmin ayrıntılarından tam yolunu kopyala yapıştır. Ben Linux'ta bu sorunla hep karşılaşıyorum Java'da, belki bir alakası vardır :) Kolay gelsin
Ama Kullanıcı Programın Yolunu Değiştirebilir. Yönetici Hakları ile Çalıştırıyorum Zaten, Dosya Türü Programımla Bağlandı. Bu Arada Resim Bir PixelArt, hellimg Dosya Uzantısında 0-9 Arası Sayılar ve Q harfi ile Pixel Art Yapılıyor Ve Bu Pixel Art Konsolda Okunuyor.
Mesaj otomatik birleştirildi:

Örneğin Şu Sayılar:
1597101558024.png

Şunu Çıkarıyor:
1597101598639.png
 
Son düzenleyen moderatör:

CapScroLL

Profesör
Katılım
22 Ağustos 2014
Mesajlar
3,657
Reaksiyon puanı
2,683
Puanları
113
Yaş
26
Ben bir dosya türünü (hellimg) Programımla İlişkilendirdim, Programım O Dosya Yoluyla Açıldığında O Dosyanın İçeriği Okunsun İstiyorum. Ne Yapabilirim?
Anladığım kadarıyla .hellimg dosya uzantısı için decoder yazdınız, a.hellimg dosyası desktop konumunda b.hellimg dosyası ise desktop/folder konumunda sizin istediğiniz şey ise bu dosyalar açıldığı zaman bunların konumunu almak mı? Örneğin b.hellimg açılırsa desktop/folder a.hellimg açılırsa desktop?
 

023

Profesör
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,593
Puanları
113
Yaş
16
Anladığım kadarıyla .hellimg dosya uzantısı için decoder yazdınız, a.hellimg dosyası desktop konumunda b.hellimg dosyası ise desktop/folder konumunda sizin istediğiniz şey ise bu dosyalar açıldığı zaman bunların konumunu almak mı? Örneğin b.hellimg açılırsa desktop/folder a.hellimg açılırsa desktop?
Aynen Öyle ?
Mesaj otomatik birleştirildi:

Ama Detayı Unutmayalım C:\Users\DefaultUser\Desktop\Folder Olacak :D
Dipnot:
1597101929984.png

Mesaj otomatik birleştirildi:

Örnek:
1597102127492.png
 
Son düzenleyen moderatör:

CapScroLL

Profesör
Katılım
22 Ağustos 2014
Mesajlar
3,657
Reaksiyon puanı
2,683
Puanları
113
Yaş
26
Kayıt defteri üzerinden .hellimg dosya yolunu kendi programınız ile eşitlemeniz lazım, bu durumda hem kendi programınız için hem dosya uzantınız için kayıt defteri girdisi yapmanız lazım. Eğer kayıt defteri ayarlamaları doğru şekilde yapılmışsa .hellimg uzantılı dosyaya girdiğinizde sizin uygulamanız açılır ve
C#:
String[] args = Environment.GetCommandLineArgs();
Komutu ile dosyanın yolunu alırsınız.

Siz yazılımı direkt açtığınız zaman kendi dosya yolunu verir fakat .hellimg uzantılı bir dosya aracılığıyla açarsanız bu dosyanın bulunduğu dosya yolunu verir.
 

023

Profesör
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,593
Puanları
113
Yaş
16
Kayıt defteri üzerinden .hellimg dosya yolunu kendi programınız ile eşitlemeniz lazım, bu durumda hem kendi programınız için hem dosya uzantınız için kayıt defteri girdisi yapmanız lazım. Eğer kayıt defteri ayarlamaları doğru şekilde yapılmışsa .hellimg uzantılı dosyaya girdiğinizde sizin uygulamanız açılır ve
C#:
String[] args = Environment.GetCommandLineArgs();
Komutu ile dosyanın yolunu alırsınız.

Siz yazılımı direkt açtığınız zaman kendi dosya yolunu verir fakat .hellimg uzantılı bir dosya aracılığıyla açarsanız bu dosyanın bulunduğu dosya yolunu verir.
zaten hellimg dosyası programı açıyordu ama ben dosyaya çift tıklandığımda [0] değil de [1] dosyanın yolunu veriyor sanıyordum. teşekkürler.
 
Üst