none
C# Tarayıcıdaki Linkleri Listbox İçine Aktarma RRS feed

  • Soru

  • Merhaba Ebeveyn denetimi şeklinde bir program yapıyorum.Yapmak istediğim ebeveyn denetiminde olan kulllanıcı çocuk kimse tarayıcı üzerinde gezdiği siteleri bir listbox a aktarmak istiyorum.Yani çocuk tarayıcı geçmişini silse bile veriler yani girdiği siteler listbox da listelenecek ve ebeveyn girdiği kontrol edebilecek. nasıl sağlayabilirim?
    • Düzenleyen Bay Coder 11 Ekim 2018 Perşembe 08:50
    11 Ekim 2018 Perşembe 08:49

Yanıtlar

Tüm Yanıtlar

  • Sorunuzun yanıtı burada.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Bay Coder 12 Ekim 2018 Cuma 07:22
    11 Ekim 2018 Perşembe 22:26
  • Hocam merhaba yanıtınız için teşekkürler fakat bu sadece internet explorer için kullanılabiliyor. Günümüzde baktığımız zaman en çok kullanılan tarayıcı google chrome chrome için denediğimde bu çözümü maalesef işe yaramadı :(
    12 Ekim 2018 Cuma 07:28
  • Verdiğim bağlantıda çözüme ulaşan kişinin kodları içerisinde Chrome ve Firefox için kodlar var.

            public static string GetChromeUrl(Process process)
            {
                if (process == null)
                    throw new ArgumentNullException("process");
                if (process.MainWindowHandle == IntPtr.Zero)
                    return null;
                AutomationElement element = AutomationElement.FromHandle(process.MainWindowHandle);
                if (element == null)
                    return null;
                AutomationElement edit = element.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit));
                return ((ValuePattern)edit.GetCurrentPattern(ValuePattern.Pattern)).Current.Value as string;
            }
    
            public static string GetInternetExplorerUrl(Process process)
            {
                if (process == null)
                    throw new ArgumentNullException("process");
                if (process.MainWindowHandle == IntPtr.Zero)
                    return null;
                AutomationElement element = AutomationElement.FromHandle(process.MainWindowHandle);
                if (element == null)
                    return null;
                AutomationElement rebar = element.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "ReBarWindow32"));
                if (rebar == null)
                    return null;
                AutomationElement edit = rebar.FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit));
                return ((ValuePattern)edit.GetCurrentPattern(ValuePattern.Pattern)).Current.Value as string;
            }
    
            public static string GetFirefoxUrl(Process process)
            {
                if (process == null)
                    throw new ArgumentNullException("process");
                if (process.MainWindowHandle == IntPtr.Zero)
                    return null;
                AutomationElement element = AutomationElement.FromHandle(process.MainWindowHandle);
                if (element == null)
                    return null;
                AutomationElement doc = element.FindFirst(TreeScope.Subtree, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document));
                if (doc == null)
                    return null;
                return ((ValuePattern)doc.GetCurrentPattern(ValuePattern.Pattern)).Current.Value as string;
            }

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    12 Ekim 2018 Cuma 08:32
  • Hocam peki bu kodlar için gerekli kütüphane namespace nedir?
    12 Ekim 2018 Cuma 08:46
  • Referanslarınıza UIAutomation.dll dosyasını ekleyin. Sonra,

    using System.Windows.Automation;

    kullanın.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    12 Ekim 2018 Cuma 08:56
  • Murat hocam kütüphaneyi ekledim.Sonra methodu da ekledim ve methodu timer1.tick içerisinde çağırdığım da böyle bir hata veriyor nasıl çözebilirim?

    timer1 içerisinde böyle çağırdım:

     private void timer1_Tick(object sender, EventArgs e)
            {
                GetChromeUrl();
            }

    ve bu hatayı verdi :

    Birde hocam ben bu methodu form1  loadın hemen üzerinde çağırdım.Ek olarak methodun içindeki şu bölümde process yazan yere chrome yazmam gerekiyor yaniexenin ismini sanırım burada chrome un çalıştığını yakalıyor değil mi?

    if (process == null)
                    throw new ArgumentNullException("process");

    12 Ekim 2018 Cuma 16:10
  • static void Main(string[] args)
    {
        foreach (Process process in Process.GetProcessesByName("firefox"))
        {
            string url = GetFirefoxUrl(process);
            if (url == null)
                continue;
    
            Console.WriteLine("FF Url for '" + process.MainWindowTitle + "' is " + url);
        }
    
        foreach (Process process in Process.GetProcessesByName("iexplore"))
        {
            string url = GetInternetExplorerUrl(process);
            if (url == null)
                continue;
    
            Console.WriteLine("IE Url for '" + process.MainWindowTitle + "' is " + url);
        }
    
        foreach (Process process in Process.GetProcessesByName("chrome"))
        {
            string url = GetChromeUrl(process);
            if (url == null)
                continue;
    
            Console.WriteLine("CH Url for '" + process.MainWindowTitle + "' is " + url);
        }
    }
    Bu kodları kendinize uyarlayın.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    12 Ekim 2018 Cuma 18:49
  • Murat hocam dediklerinizi harfiyen yaptım program patlak veriyor şöyle bir hata:

    Nasıl Çözebiliriz?

    12 Ekim 2018 Cuma 19:15
  • Hata mesajını aldığınız satırda .ToString() kullanmışsınız. 

    Oysa size verilen kodlarda .ToString() kullanılmamış.

    Bu ifadeyi düzeltirseniz hata mesajı almazsınız.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    13 Ekim 2018 Cumartesi 06:31
  • Hocam dediğiniz yaptım ve aynı hata devam ediyor.Yaptığım işlemi bu resimde inceleyebilirsiniz:

    birde tostring kısmını sildikten sonra as string bölümünü de sildim fakat aynı hata devam ediyor onu da  bu resimde inceleyebilirsiniz:

    Bir de hocam sizin verdiğiniz kodda da ben tostring bölümünü görüyorum.Ben yanlış bir yere baktım yoksa ?
    • Düzenleyen Bay Coder 13 Ekim 2018 Cumartesi 07:31
    13 Ekim 2018 Cumartesi 07:29
  • Murat hocam müsait zamanda dönüş yapabilirseniz çok sevinirim
    14 Ekim 2018 Pazar 09:13