C# da Ayrı bir programı çalıştırmak

sonicnix

Centipat
Katılım
27 Mayıs 2020
Mesajlar
863
Çözümler
3
Merhabalar değerli Technopat Sosyal forum sakinleri,

C# bilen ve buralarda az, çok yardımcı olmak istiyen sakinlere bir sorum olucaktı. Sorum şu şekilde;

Bildiğim bir program var. Bu programın kaynak kodlarını dnSpy aracılığıyla aldım. Programda bir checkbox a basınca bir program başlatılıyor. Bende bu kodları aldım kendi butonuma yapıştırdım. Projemi hatasız, uyarısız derledim lakin checkbox a basınca bir hata ile karşılaştım fotoğrafını ekledim. Bana bu konuda yardımcı olur musunuz? Projeye açılmasını istediğim programı da ekledim. Hata yok?
Kodlar;

C#:
bool @checked = this.gunaCheckBox4.Checked;

            if (@checked)

            {

                DialogResult dialogResult = MessageBox.Show("Grif clicker, RiseClient ve SonOyuncuda çalışır. Başlatmak istiyormusunuz?", "", MessageBoxButtons.YesNo);

                bool flag = dialogResult == DialogResult.Yes;

                if (flag)

                {

                    try

                    {

                        File.WriteAllBytes("grif.exe", Resources.grif);

                        Process.Start("grif.exe",@"");

                    }

                    catch (Exception ex)

                    {

                        MessageBox.Show(ex.ToString(), "HATA");

                    }

                }

                else

                {

                    this.gunaCheckBox4.Checked = false;

                }

            }

Şimdiden yardımcı olucak tüm forum sakinlerine çok teşekkürlerimi iletiyorum.
 

Dosya Ekleri

  • Screenshot_10.png
    Screenshot_10.png
    6,7 KB · Görüntüleme: 69
Son düzenleyen: Moderatör:
Try-Catch bloğunda, try kısmında bir hatanız mevcut sanırım, catch'de yazdırılan hata olması gerek bunun. HATA yazan yeri değiştirdiğinizde pencereninde başlığı değişiyorsa try kısmını gözden geçirin.
C#:
File.WriteAllBytes("grif.exe", Resources.grif);
Buradaki satırda değişkenlerle ilgili bir problem var, sanırım "Resources.grif" diye bir değişkeniniz yok.
 
Try-Catch bloğunda, try kısmında bir hatanız mevcut sanırım, catch'de yazdırılan hata olması gerek bunun. HATA yazan yeri değiştirdiğinizde pencereninde başlığı değişiyorsa try kısmını gözden geçirin.
C#:
File.WriteAllBytes("grif.exe", Resources.grif);
Buradaki satırda değişkenlerle ilgili bir problem var, sanırım "Resources.grif" diye bir değişkeniniz yok.
programda dnspy da resources falan bu şekilde;
benim programımdaki visual studiodaki resources şu şekilde;
ben hatayı çözdüm lakin yapamıyorum hata resources de adamda resources klasörü properties bölümünde ben direk şap diye klasör oluşturdum ve bu klasörden başlatamıyorum yardım edebilir misin?
 

Dosya Ekleri

  • Screenshot_11.png
    Screenshot_11.png
    3,8 KB · Görüntüleme: 54
  • Screenshot_12.png
    Screenshot_12.png
    3,3 KB · Görüntüleme: 50
Daha önce tamamen konsol çalışıp, basit arayüzler tasarladığım için o kadar bilgim yok, o yüzden yardımcı olamayacağım ama belki @Kerem00 ya da @Alpha Centauri girip baktıklarına göre konuya fikirleri olabilir. :D
Benim belki de en çok kullandığım dil C#'tır fakat hala konuyu anlamaya çalışıyorum. DnSpy'dan alınan kodu projeye yapıştırmak pek de tersine mühendislik sayılmıyor, kodu anlayıp ortamı ona göre oluşturmak gerekiyor. Yoksa böyle hata alınır.

Properties kısmından "Resources" sekmesinin görüntüsünü atabilir misin? (Projeye sağ tık yapman gerekiyor.)
 
Benim belki de en çok kullandığım dil C#'tır fakat hala konuyu anlamaya çalışıyorum. DnSpy'dan alınan kodu projeye yapıştırmak pek de tersine mühendislik sayılmıyor, kodu anlayıp ortamı ona göre oluşturmak gerekiyor. Yoksa böyle hata alınır.

Properties kısmından "Resources" sekmesinin görüntüsünü atabilir misin? (Projeye sağ tık yapman gerekiyor.)
Bende anlıyorum lakin böyle bir şey lazım örnek bir şey olsa ve ben tek kullanıcak olsam böyle birşeye ihtiyaç duymazdımda bunu arkadaşlarımla paylaşacağım. Onların dosya yolları farklı olucağı için böyle bir şey hazır varken almak istedim ama hata ile karşılaşına geldim buralara :D.
Buyrunuz..
 

Dosya Ekleri

  • Screenshot_13.png
    Screenshot_13.png
    6,3 KB · Görüntüleme: 49
Dosyanın adındaki nokta karıştırıyor olabilir. Resources kısmına gidip noktayı kaldırarak dosyanın adını "grifexe" gibi yaparak, kodda da "grif.exe" yerine "grifexe" şeklinde (adını ne ile değiştirdiyseniz) deneyebilir misiniz bir de? Sıkıntı sanki grif.exe dosyasının grif adlı klasörde olması ve bizim sadece klasörü okumaya çalışıyor olmamız gibi görünüyor.
 
Onların dosya yolları farklı olucağı için böyle bir şey hazır varken almak istedim ama hata ile karşılaşına geldim buralara :D.
Burada bilgisayar bağımsız olmak üzere dosya yolları çekebilen fonksiyonlar mevcut.
MS C# Docs
 
Uyarı! Bu konu 6 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.

Technopat Haberler

Geri
Yukarı