• 26-02-2020, 19:11:09
    #1
    Merhabalar
    Webbrowser içinde açılan bir web sitesinden açılan file upload a dosya yolu göndermek istiyorum
    Bunun için postmessage kullanmam gerekiyor.
    Kodlarım şöyle
    var elements = webBrowser1.Document.GetElementsByTagName("input") ; // File uplad ı açıyoruz
    foreach (HtmlElement file in elements)
    {
    if (file.GetAttribute("type") == "file")
    {
    file.Focus();
    file.InvokeMember("click");
    break;
    }
    }

    string path = System.IO.Path.GetDirectoryName(Assembly.GetExecut ingAssembly().Location);
    string gelenResim = "1.jpg";
    string DosyaYolu = Path.Combine(path, gelenResim); // Dosya yolu

    int hwnd2 = 0;

    hwnd2 = FindWindow("#32770", null);


    #region bu kodları henüz çözemedim
    //IntPtr val = new IntPtr((Int32)'0');
    //PostMessage((IntPtr)hwnd2, WM_KEYDOWN, new IntPtr(VK_RETURN), new IntPtr(0));
    //PostMessage((IntPtr)hwnd2, WM_KEYUP, new IntPtr(VK_RETURN), new IntPtr(0));
    //PostMessage((IntPtr)hwnd2, WM_KEYDOWN, val, new IntPtr(0));
    //PostMessage((IntPtr)hwnd2, WM_SETTEXT, (IntPtr)val, new IntPtr(0));
    #endregion



    #region bukodlar çalışmıyor
    PostMessage((IntPtr)hwnd2, WM_KEYDOWN, (IntPtr)(50 - 0x020), IntPtr.Zero);
    SendMessage(hwnd2, WM_KEYDOWN, (25 - 0x020), IntPtr.Zero);


    for (int i = 0; i < DosyaYolu.Length; i++)
    {
    byte kar = (byte)DosyaYolu[i];
    PostMessage((IntPtr)hwnd2, WM_SETTEXT, (IntPtr)kar, new IntPtr(0));
    }
    #endregion


    #region açılan file upload ı kapatma kodu
    //int hwnd = 0;
    //IntPtr hwndChild = IntPtr.Zero;
    //hwnd = FindWindow("#32770", null); // File Upload handle
    //SendMessage(hwnd, WM_CLOSE, 0, IntPtr.Zero); // Bu açılan file uplad ı kapatıyor
    #endregion
    nerede yanlış yapıyorum acaba?

    Projemi de bu linkten indirip kontrol edebilirsiniz
    http://on11.net/test.rar
  • 26-02-2020, 19:12:39
    #2
    C# selenium kullanın huzura erin 🙂
  • 26-02-2020, 22:01:27
    #3
    marjinaltasarim adlı üyeden alıntı: mesajı görüntüle
    C# selenium kullanın huzura erin 🙂
    valla 2019 kullanıyorum ve bir haftadır bu sorunu çözmeye uğraşıyorum