public UygulamaBostaBekliyor_(string YerelDepolamaKonumu = "", int Süre_Sn = 5 * 60, List <string> VideolarınBulunduklarıKlasörler = null, bool AynıGörüntüyüSürekliTekrarla = false, int SesSeviyesiYüzdesi = 0, bool ÖnceKopyalaSonraOynat = true) { UzaktakiOynatılacakVideolarListesi = new List <string>(); if (VideolarınBulunduklarıKlasörler != null) { foreach (var dosya in VideolarınBulunduklarıKlasörler) { string yol = Path.GetDirectoryName(dosya + "\\"); if (!Directory.Exists(yol)) { continue; } UzaktakiOynatılacakVideolarListesi.AddRange(Directory.GetFiles(yol)); } } else if (Directory.Exists(AğdakiReklamVideolarınınYolu)) { UzaktakiOynatılacakVideolarListesi = Directory.GetFiles(AğdakiReklamVideolarınınYolu).ToList(); } if (YerelDepolamaKonumu == "") { YerelKlasör = Path.GetDirectoryName(GetType().Assembly.Location) + "\\UygulamaBoştaBekliyor\\"; } else if (YerelDepolamaKonumu.Contains("\\")) { YerelKlasör = YerelDepolamaKonumu; } else { YerelKlasör = Path.GetDirectoryName(GetType().Assembly.Location) + "\\" + YerelDepolamaKonumu + "\\UygulamaBoştaBekliyor\\"; } bool var; Ayarlar = new Ayarlar_(out var, "", YerelKlasör + "UygulamaBostaBekliyor.Ayarlar"); if (UzaktakiOynatılacakVideolarListesi.Count == 0) { if (Directory.Exists(YerelKlasör)) { UzaktakiOynatılacakVideolarListesi = Directory.GetFiles(YerelKlasör).ToList(); } UzaktakiOynatılacakVideolarListesi.Remove(Ayarlar.AyarlarDosyasıYolunuAl()); if (UzaktakiOynatılacakVideolarListesi.Count == 0) { return; } } else { //Fazla Dosya Kontrolü string[] Dizi = Directory.GetFiles(YerelKlasör); foreach (var nesne in Dizi) { string DosyaAdı = Path.GetFileName(nesne); if (DosyaAdı != Path.GetFileName(Ayarlar.AyarlarDosyasıYolunuAl())) { var = false; foreach (var uzak in UzaktakiOynatılacakVideolarListesi) { if (uzak.Contains(DosyaAdı)) { var = true; break; } } if (!var) { File.Delete(nesne); } } } } if (Süre_Sn < 5) { ZamanAşımı = 5; } else { ZamanAşımı = Süre_Sn; } Gözlemci = new KlavyeFareGozlemcisi_(); if (!Directory.Exists(YerelKlasör)) { Directory.CreateDirectory(YerelKlasör); } KayitDefteri_ KayıtDefteri = new KayitDefteri_("HKEY_CURRENT_USER\\Software\\Microsoft\\MediaPlayer"); if (UzaktakiOynatılacakVideolarListesi.Count == 1) { AynıGörüntüyüSürekliTekrarla = true; } Süre_Sn = 0; if (AynıGörüntüyüSürekliTekrarla) { Süre_Sn = 1; } KayıtDefteri.Yaz("Preferences", "ModeLoop", Süre_Sn); KayıtDefteri.Yaz("Preferences", "Volume", SesSeviyesiYüzdesi); DosyalarıÖnceKopyalaSonraOynat = ÖnceKopyalaSonraOynat; DurdurKapat = false; Durum = Durum_.SüreninGeçmesiniBekliyor; ArkaPlan = new BackgroundWorker(); ArkaPlan.DoWork += ArkaPlandaÇalışanUygulama; ArkaPlan.RunWorkerAsync(); }
void ArkaPlandaÇalışanUygulama(object sender, DoWorkEventArgs e) { FileInfo Yerel = null; FileInfo Uzak; int önceki_TotalProcessorTime_Tick = 0; TimeSpan önceki_TotalProcessorTime = new TimeSpan(0); int KapatÇık = 0; int Bekleme = 1000; while (!DurdurKapat) { try { switch (Durum) { case Durum_.SüreninGeçmesiniBekliyor: case Durum_.Boşta: default: Bekleme = 5000; if (BoştaGeçenSaniye() > ZamanAşımı) { Durum = Durum_.GörüntüSeçiliyor; Bekleme = 1; } break; case Durum_.GörüntüSeçiliyor: if (UzaktakiOynatılacakVideolarListesi.Count == 0) { return; } foreach (var görüntü in UzaktakiOynatılacakVideolarListesi) { Yerel = new FileInfo(YerelKlasör + Path.GetFileName(görüntü)); Uzak = new FileInfo(görüntü); if (!DosyalarıÖnceKopyalaSonraOynat) { Yerel = Uzak; } if (Ayarlar.Oku(Yerel.FullName) != "Kullanıldı") { if (DosyalarıÖnceKopyalaSonraOynat) { bool YenidenKopyala = false; if (File.Exists(Yerel.FullName)) { if (Yerel.LastWriteTime != Uzak.LastWriteTime) { YenidenKopyala = true; } else if (Yerel.Length != Uzak.Length) { YenidenKopyala = true; } } else { YenidenKopyala = true; } if (YenidenKopyala) { File.Copy(Uzak.FullName, Yerel.FullName, true); } } Durum = Durum_.GörüntüBaşlatılıyor; break; } } if (Durum != Durum_.GörüntüBaşlatılıyor) { List <Depo.Biri> Liste = Ayarlar.Listele(); foreach (var nesne in Liste) { Ayarlar.Sil(nesne.Adı); } } break; case Durum_.GörüntüBaşlatılıyor: Oynatıcı = new Process(); Oynatıcı.StartInfo.FileName = "mplayer2.exe"; Oynatıcı.StartInfo.Arguments = "/play /fullscreen \"" + Yerel.FullName + "\""; Oynatıcı.Start(); Bekleme = 500; KapatÇık = 0; önceki_TotalProcessorTime = Oynatıcı.TotalProcessorTime; önceki_TotalProcessorTime_Tick = Environment.TickCount; Ayarlar.Yaz(Yerel.FullName, "Kullanıldı"); Durum = Durum_.GörüntüOynatılıyor; break; case Durum_.GörüntüOynatılıyor: double yüzde = Oynatıcı.TotalProcessorTime.Subtract(önceki_TotalProcessorTime).TotalMilliseconds / (Environment.TickCount - önceki_TotalProcessorTime_Tick) / Environment.ProcessorCount * 100; önceki_TotalProcessorTime = Oynatıcı.TotalProcessorTime; önceki_TotalProcessorTime_Tick = Environment.TickCount; if (BoştaGeçenSaniye() < ZamanAşımı) { KapatÇık = 100; } else if (Oynatıcı.HasExited || !Oynatıcı.Responding) { KapatÇık = 100; } else if (yüzde < 1) { if (++KapatÇık > 2) { KapatÇık = 100; } } else { KapatÇık = 0; } if (KapatÇık == 100) { Oynatıcı.Kill(); Oynatıcı.Dispose(); Oynatıcı = null; Durum = Durum_.SüreninGeçmesiniBekliyor; } break; } } catch (Exception) { if (Oynatıcı != null) { Oynatıcı.Dispose(); Oynatıcı = null; } Durum = Durum_.SüreninGeçmesiniBekliyor; } Thread.Sleep(Bekleme); } }