• 09-09-2015, 21:39:24
    #1



    Bu programın belli kısmına kadar bir arkadaşım sağolsun yapıvermişti. hatta kaynak koduyla paylaştı aşağıdaki adresde

    https://www.dropbox.com/sh/figtdfkpy...jhSRWYpga?dl=0

    Ufak bir şey daha eklemek istiyorum yardımcı olabilen çıkarsa sevinirim. Burda açtırdığımız programı belirli süre, saniye sonra (text kutusuna girilen değer kadar ) kapatabilirmiyiz ?görev yöneticisinden zorlayarakda kapatabilir yada başka şekilde nasıl kapanıyorsa. Bu yapılabilir mi arkadaşlar .



    Teşekkürler.
    (Multi konudur.)
  • 10-09-2015, 00:36:16
    #2
    Merhaba hocam, aşağıda ki kodları yazarsanız istediğiniz olacaktır. İlk olarak formunuza 1 adet timer ve textbox ekleyiniz. Ve timer ögemizin interval özelliğini 1000 yapınız ve isterseniz metin kutusunada text girerek saniyeyi otomatik belirleyebilirsiniz. Daha sonra kod sayfanıza aşağıda ki fonksiyonları ekleyiniz.
            string kontrolet()
            {
                string uygulama="";
                for (int i = 0; i < namess.Length; i++)
                {
                    string uyg = namess[i].ToString();
                    if (Array.IndexOf(names, uyg.ToString()) == -1)
                   {
                       uygulama = uyg.ToString();
                   }
                }
                return uygulama.ToString();
            }
           string[] names, namess;
            void Uygulamalar(string list)
            {
                Process[] prs = Process.GetProcesses();
                int uzunluk = prs.Length;
                if (list == "ilk")
                {
                    names = new string[uzunluk];
                }
                else namess = new string[uzunluk];
                int say = 0;
                foreach (Process pr in prs)
                {
    
                    if (list == "ilk")
                    {                    
                        names[say] = pr.ProcessName.ToString();
                    }
                    else
                    {
                        namess[say] = pr.ProcessName.ToString();
                    }
                    say++;
                }
            }
    Fonksiyonları ekledikten sonra uygulama başlatma butonlarımızın kod bloklarına aşağıdakileri ekliyoruz ve bu şekilde oluyor.
                    Uygulamalar("ilk");    
                    Process.Start(textBox1.Text);
                    Uygulamalar("BSoylu");
                    CounterArtir();
                    timer1.Start();
    Bu kodlarımızı da ekledikten sonra timer ögemize çift tıklayarak tick olayını oluşturuyoruz ve aşağıda ki yapıyoruz.
     
            int say = 0;
            private void timer1_Tick(object sender, EventArgs e)
            {
                say++;
                if (say == Convert.ToInt32(textBox4.Text))
                {
                    Process[] pr = Process.GetProcessesByName(kontrolet());
                    pr[0].Kill();
                    say = 0; 
                    timer1.Stop();
                }
            }
    Uygulamayı çalıştırdıktan sonra seçtiğiniz dosya belirttiğimiz saniyeden sonra otomatik olarak kapanacaktır.
    Başka yöntem var mı bilmiyorum ama tarafımca denenmiştir. Kolay gelsin.
  • 10-09-2015, 12:24:12
    #3
    @BSoylu hocam çok teşekkür ediyorum. hemen denicem yapamazsam sizi tekrar rahatsız ederim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:24:12 -->-> Daha önceki mesaj 11:46:34 --

    BSoylu adlı üyeden alıntı: mesajı görüntüle
    Merhaba hocam, aşağıda ki kodları yazarsanız istediğiniz olacaktır. İlk olarak formunuza 1 adet timer ve textbox ekleyiniz. Ve timer ögemizin interval özelliğini 1000 yapınız ve isterseniz metin kutusunada text girerek saniyeyi otomatik belirleyebilirsiniz. Daha sonra kod sayfanıza aşağıda ki fonksiyonları ekleyiniz.
            string kontrolet()
            {
                string uygulama="";
                for (int i = 0; i < namess.Length; i++)
                {
                    string uyg = namess[i].ToString();
                    if (Array.IndexOf(names, uyg.ToString()) == -1)
                   {
                       uygulama = uyg.ToString();
                   }
                }
                return uygulama.ToString();
            }
           string[] names, namess;
            void Uygulamalar(string list)
            {
                Process[] prs = Process.GetProcesses();
                int uzunluk = prs.Length;
                if (list == "ilk")
                {
                    names = new string[uzunluk];
                }
                else namess = new string[uzunluk];
                int say = 0;
                foreach (Process pr in prs)
                {
    
                    if (list == "ilk")
                    {                    
                        names[say] = pr.ProcessName.ToString();
                    }
                    else
                    {
                        namess[say] = pr.ProcessName.ToString();
                    }
                    say++;
                }
            }
    Fonksiyonları ekledikten sonra uygulama başlatma butonlarımızın kod bloklarına aşağıdakileri ekliyoruz ve bu şekilde oluyor.
                    Uygulamalar("ilk");    
                    Process.Start(textBox1.Text);
                    Uygulamalar("BSoylu");
                    CounterArtir();
                    timer1.Start();
    Bu kodlarımızı da ekledikten sonra timer ögemize çift tıklayarak tick olayını oluşturuyoruz ve aşağıda ki yapıyoruz.
     
            int say = 0;
            private void timer1_Tick(object sender, EventArgs e)
            {
                say++;
                if (say == Convert.ToInt32(textBox4.Text))
                {
                    Process[] pr = Process.GetProcessesByName(kontrolet());
                    pr[0].Kill();
                    say = 0; 
                    timer1.Stop();
                }
            }
    Uygulamayı çalıştırdıktan sonra seçtiğiniz dosya belirttiğimiz saniyeden sonra otomatik olarak kapanacaktır.
    Başka yöntem var mı bilmiyorum ama tarafımca denenmiştir. Kolay gelsin.


    hocam pr[0].Kill(); kısmında hata alıyorum. foto olarak ekledim

    http://img501.yukle.tc/image.php?id=12683123.jpg

    biryerde yanlış mı yaptım ? textboxa 5 yazıyorum. 5 saniye sonra pr[0].Kill(); hatası veriyor.
  • 10-09-2015, 12:36:16
    #4
    Linkinmetin adlı üyeden alıntı: mesajı görüntüle
    @BSoylu hocam çok teşekkür ediyorum. hemen denicem yapamazsam sizi tekrar rahatsız ederim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 12:24:12 -->-> Daha önceki mesaj 11:46:34 --





    hocam pr[0].Kill(); kısmında hata alıyorum. foto olarak ekledim

    http://img501.yukle.tc/image.php?id=12683123.jpg

    biryerde yanlış mı yaptım ? textboxa 5 yazıyorum. 5 saniye sonra pr[0].Kill(); hatası veriyor.
    Hocam seçilen dosya açıldığında kendiniz kapatırsanız hatayı verir. Kendim de denedim şimdi. Yine de aynı hatayı alırsanız skypedan konuşalım.