AutoPlay Media Studio 9 ile Checkbox Kullanarak AIO Programı Oluşturma

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.
 
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

Checkbox ile Seçilen Dosyaları Sırasıyla Çalıştırma​


Birden fazla programın Checkbox üzerinden seçilerek sırayla çalıştırılması isteniyorsa, her Checkbox'ın doğru dosyayla eşleştirilmesi gerekir.

Örneğin:

CheckBox1 → birincidosya.exe

CheckBox2 → ikincidosya.exe

CheckBox3 → ucuncudosya.exe


Kod şu şekilde olmalıdır:

Kod:
-- Checkbox durumlarını kontrol et
c1 = CheckBox.GetChecked("CheckBox1");
c2 = CheckBox.GetChecked("CheckBox2");
c3 = CheckBox.GetChecked("CheckBox3");

-- 1. Checkbox seçiliyse birinci dosyayı çalıştır
if c1 then

Paragraph.SetText("Paragraph1", "Birinci dosya çalıştırılıyor...");

File.Run("AutoPlay\\Docs\\birincidosya.exe", "", "", true);

Paragraph.SetText("Paragraph1", "Birinci dosya çalıştırıldı.");

end

-- 2. Checkbox seçiliyse ikinci dosyayı çalıştır
if c2 then

Paragraph.SetText("Paragraph1", "İkinci dosya çalıştırılıyor...");

File.Run("AutoPlay\\Docs\\ikincidosya.exe", "", "", true);

Paragraph.SetText("Paragraph1", "İkinci dosya çalıştırıldı.");
end

-- 3. Checkbox seçiliyse üçüncü dosyayı çalıştır
if c3 then

Paragraph.SetText("Paragraph1", "Üçüncü dosya çalıştırılıyor...");

File.Run("AutoPlay\\Docs\\ucuncudosya.exe", "", "", true);

Paragraph.SetText("Paragraph1", "Üçüncü dosya çalıştırıldı.");
end

Buradaki önemli nokta, File.Run komutunun son parametresinin true olmasıdır. Bu kullanımda AutoPlay Media Studio, çalıştırılan programın tamamlanmasını bekler ve ardından bir sonraki if bloğuna geçer.

Örneğin kullanıcı CheckBox1, CheckBox2 ve CheckBox3 seçeneklerinin üçünü de işaretlerse çalışma sırası:

1. birincidosya.exe

2. ikincidosya.exe

3. ucuncudosya.exe


şeklinde olacaktır.

Sadece CheckBox1 ve CheckBox3 seçilmişse önce birincidosya.exe, ardından ucuncudosya.exe çalıştırılır.

Eski Kodda Hata Nerede?​


Gönderdiğin kodda Checkbox değişkenleri şu şekilde oluşturulmuş:

Kod:
c1 = CheckBox.GetChecked("CheckBox1");
c2 = CheckBox.GetChecked("CheckBox2");
c3 = CheckBox.GetChecked("CheckBox3");

Ancak aşağıda ilk dosya için:

Kod:
if c2 then
File.Run("AutoPlay\Docs\birincidosya.exe", "", "", true);
end

şeklinde c2 kontrol ediliyor.

Yani CheckBox1 yerine CheckBox2 kontrol edilmiş oluyor. Aynı şekilde diğer dosyalarda da Checkbox sıralaması kayıyor.

Doğru eşleştirme her zaman şu şekilde olmalıdır:

Kod:
CheckBox1 → c1 → birincidosya.exe
CheckBox2 → c2 → ikincidosya.exe
CheckBox3 → c3 → ucuncudosya.exe

Bu düzeltmeden sonra kullanıcı hangi Checkbox'ları seçerse, seçilen dosyalar kod içerisindeki sıraya göre çalıştırılır.
Burada Application.Sleep(2000) ve StatusDlg.Hide() satırlarını çıkardım; çünkü programın tamamlanmasını beklemek için File.Run(..., true) zaten yeterli. Sleep yalnızca ekranda mesajı bir süre tutmak amacıyla kullanılacaksa ayrıca eklenebilir.
 
Geri
Yukarı