AİO YAPIMINDA CheckBox YARDIM

YagmurduasI

Yeni Üye
Kayıtlı Üye
Merhabalar ben auto play media studio ile bir proje yapıyorum bu projede birden fazla dosyayı sırası ile çalıştırmak istiyorum .
aşağıdaki kodda da görüldüğü gibi ben seçtiğim birkaçtane dosyayı sırasıyla çalıştırmak istiyorum ilk önce seçtiğim 1.dosya sonra 2 sonra 3 yalnız uygulama ben birden fazla dosyayı seçtiğimde ilk dosyayı çalıştırıyor daha sonra ikinci dosyayı çalıştırmıyor,


c1 = CheckBox.GetChecked("CheckBox1") -- 1. checkboxun seçili olup olmadığına bak
c2 = CheckBox.GetChecked("CheckBox2") -- 2. checkboxun seçili olup olmadığına bak
c3 = CheckBox.GetChecked("CheckBox3") -- 3. checkboxun seçili olup olmadığına bak




if c2 then -- eğer 1. checkbox seçili ise
File.Run("AutoPlay\\Docs\\birincidosya.exe", "", "", true);
Paragraph.SetText("Paragraph1", "Birinci Dosya Çalıştırıldı.") -- Dosya Çalıştırıldı mesajı ver
Application.Sleep(2000) --2 saniye bekle (buna normalde gerek yok sadece görüntü için...)
StatusDlg.Hide();
end


if c3 then -- eğer 2. checkbox seçili ise
File.Run("AutoPlay\\Docs\\ikincidosya.exe", "", "", true);
Paragraph.SetText("Paragraph1", "İkinci Dosya Çalıştırıldı.") -- Dosya Çalıştırıldı mesajı ver
Application.Sleep(2000) --2 saniye bekle (buna normalde gerek yok sadece görüntü için...)
StatusDlg.Hide();
end


if c1 then -- eğer 3. checkbox seçili ise
File.Run("AutoPlay\\Docs\\ucuncudosya.exe", "", "", true);
Paragraph.SetText("Paragraph1", "Üçüncü Dosya Çalıştırıldı.") -- Dosya Çalıştırıldı mesajı ver
Application.Sleep(2000) --2 saniye bekle (buna normalde gerek yok sadece görüntü için...)
StatusDlg.Hide();
end
 
http://www.uydudoktoru.com/threads/autoplay-media-studio-ile-checkbox-kullanarak-aio-yapmak.3281/
---
http://www.uydudoktoru.com/threads/cok-ugrastim-ama-yapamadim.21216/#post-31776

Yukardaki linkleri inceleyiniz


Checkbox nesnesi kullanarak AIO paketi yapmak için bir örnek hazırladım. Yıllardır bu konu üzerine yazılıp çizildi, fakat hala anlamamakta ısrar edenler var. Projeye istediğiniz kadar checkbox ekleyebilirsiniz. Tek satır kod yazmanıza gerek yoktur. Tek şart eklediğiniz checkbox isminde Docs klasöründe exe uzantısında programın olmasıdır. Yani Winrar diye bir checkbox oluşturmuşsak, program Docs klasöründeki Winrar.exe programını çalıştıracaktır. Tümünü seç ve seçilenleri kaldır butonu ekledim. Seçilen programların sayısını da labelde görmeniz mümkündür. İlerleme çubuğu vs. eklenmiştir. Size sadece tasarımını yapmak ve programları eklemek düşüyor. Kolay gelsin.


CheckBox ile aio yapımı.apz

Dipnot : KintaRo'nun benzer çalışmasında ini dosyası kullanıldığından CD-DVD üzerinden AIO paketi kullanmak mümkün olmuyordu. Bu programda o sorunu göze alarak kodlama yaptım. Gayet rahat kullanabilirsiniz.
 
Son düzenleme:
Merhabalar ben auto play media studio ile bir proje yapıyorum bu projede birden fazla dosyayı sırası ile çalıştırmak istiyorum .
aşağıdaki kodda da görüldüğü gibi ben seçtiğim birkaçtane dosyayı sırasıyla çalıştırmak istiyorum ilk önce seçtiğim 1.dosya sonra 2 sonra 3 yalnız uygulama ben birden fazla dosyayı seçtiğimde ilk dosyayı çalıştırıyor daha sonra ikinci dosyayı çalıştırmıyor,


c1 = CheckBox.GetChecked("CheckBox1") -- 1. checkboxun seçili olup olmadığına bak
c2 = CheckBox.GetChecked("CheckBox2") -- 2. checkboxun seçili olup olmadığına bak
c3 = CheckBox.GetChecked("CheckBox3") -- 3. checkboxun seçili olup olmadığına bak




if c2 then -- eğer 1. checkbox seçili ise
File.Run("AutoPlay\\Docs\\birincidosya.exe", "", "", true);
Paragraph.SetText("Paragraph1", "Birinci Dosya Çalıştırıldı.") -- Dosya Çalıştırıldı mesajı ver
Application.Sleep(2000) --2 saniye bekle (buna normalde gerek yok sadece görüntü için...)
StatusDlg.Hide();
end


if c3 then -- eğer 2. checkbox seçili ise
File.Run("AutoPlay\\Docs\\ikincidosya.exe", "", "", true);
Paragraph.SetText("Paragraph1", "İkinci Dosya Çalıştırıldı.") -- Dosya Çalıştırıldı mesajı ver
Application.Sleep(2000) --2 saniye bekle (buna normalde gerek yok sadece görüntü için...)
StatusDlg.Hide();
end


if c1 then -- eğer 3. checkbox seçili ise
File.Run("AutoPlay\\Docs\\ucuncudosya.exe", "", "", true);
Paragraph.SetText("Paragraph1", "Üçüncü Dosya Çalıştırıldı.") -- Dosya Çalıştırıldı mesajı ver
Application.Sleep(2000) --2 saniye bekle (buna normalde gerek yok sadece görüntü için...)
StatusDlg.Hide();
end

AMS Çoklu Dosya Çalıştırma Sorunu ve Çözümü

Merhabalar,

Kodlarınızda yaşadığınız sorunun birkaç temel sebebi olabilir. En dikkat çekeni, değişken isimleri ile if bloklarındaki kontrollerin birbiriyle karışmış olması (c1, c2, c3 sırasıyla kontrol edilmiyor). Ayrıca, dosyaların sırayla ve birbirini bekleterek çalışması için kullandığınız File.Run fonksiyonundaki "Wait" parametresinin doğru yapılandırılması gerekir.

İşte kodunuzu hem daha stabil hale getirecek hem de hatasız çalıştıracak güncel hali:
Kod:
-- Checkbox durumlarını alalım
c1 = CheckBox.GetChecked("CheckBox1");
c2 = CheckBox.GetChecked("CheckBox2");
c3 = CheckBox.GetChecked("CheckBox3");

-- 1. Dosya Kontrolü
if c1 then
    Paragraph.SetText("Paragraph1", "Birinci Dosya Çalıştırılıyor...");
    -- Sondaki 'true' parametresi, dosya kapanmadan alt satıra geçilmesini engeller.
    File.Run("AutoPlay\\Docs\\birincidosya.exe", "", "", SW_SHOWNORMAL, true);
    Paragraph.SetText("Paragraph1", "Birinci Dosya Tamamlandı.");
    Application.Sleep(1000);
end

-- 2. Dosya Kontrolü
if c2 then
    Paragraph.SetText("Paragraph1", "İkinci Dosya Çalıştırılıyor...");
    File.Run("AutoPlay\\Docs\\ikincidosya.exe", "", "", SW_SHOWNORMAL, true);
    Paragraph.SetText("Paragraph1", "İkinci Dosya Tamamlandı.");
    Application.Sleep(1000);
end

-- 3. Dosya Kontrolü
if c3 then
    Paragraph.SetText("Paragraph1", "Üçüncü Dosya Çalıştırılıyor...");
    File.Run("AutoPlay\\Docs\\ucuncudosya.exe", "", "", SW_SHOWNORMAL, true);
    Paragraph.SetText("Paragraph1", "Üçüncü Dosya Tamamlandı.");
    Application.Sleep(1000);
end

Paragraph.SetText("Paragraph1", "Tüm işlemler başarıyla tamamlandı.");

Neleri Düzelttik?

  1. Sıralama Hatası: Sizin kodunuzda c2 seçiliyse birinci dosyayı, c1 seçiliyse üçüncü dosyayı çalıştırıyordu. Değişkenleri (c1 -> CheckBox1 şeklinde) eşitledik.
  2. Wait (Bekle) Parametresi: File.Run içindeki son parametreyi true yaparak şunu demiş olduk: "Bu program kapanmadan bir sonraki 'if' bloğuna geçme." Eğer bu false olursa, AMS tüm dosyaları aynı anda açmaya çalışır ve sistem kilitlenebilir.
  3. Hata Payı: Kodun başına veya sonuna StatusDlg.Hide() eklemek yerine, her işlem bittiğinde mesajı Paragraph nesnesinde güncelleyerek kullanıcının neyin çalıştığını görmesini sağladık.
Küçük Bir İpucu: Eğer çalıştırdığınız dosyalar çok hızlı açılıp kapanan araçlarsa, aradaki Application.Sleep sürelerini biraz daha artırabilirsiniz.

İyi çalışmalar dilerim.
 
Geri
Yukarı