Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从WebBrowser控件到picturebox的验证码图像_C#_.net 3.5 - Fatal编程技术网

C# 从WebBrowser控件到picturebox的验证码图像

C# 从WebBrowser控件到picturebox的验证码图像,c#,.net-3.5,C#,.net 3.5,我需要能够将验证码图像放在我表格上的图片盒中,原因是我需要为视觉受损的用户缩放验证码图像 这似乎是一项如此简单的任务,只需从网页上获取图像并将其放入一个图片盒,但事实证明并非如此简单。 我有WebBrowser控件的形式和注册的网站之一,我需要在图片框验证码图像。问题是,验证码图像是由JavaScript生成的,当java脚本运行时,它会给出验证码图像的url。但每次java脚本运行时,验证码图像都会发生变化。我只想验证码图像,这是在网络浏览器控制当前页面 任何帮助都将不胜感激 这是我的密码

我需要能够将验证码图像放在我表格上的图片盒中,原因是我需要为视觉受损的用户缩放验证码图像

这似乎是一项如此简单的任务,只需从网页上获取图像并将其放入一个图片盒,但事实证明并非如此简单。 我有WebBrowser控件的形式和注册的网站之一,我需要在图片框验证码图像。问题是,验证码图像是由JavaScript生成的,当java脚本运行时,它会给出验证码图像的url。但每次java脚本运行时,验证码图像都会发生变化。我只想验证码图像,这是在网络浏览器控制当前页面

任何帮助都将不胜感激


这是我的密码

public void FacebookRegistration()
{
  HTMLDoc = (mshtml.HTMLDocument)WBrowser.Document.DomDocument;
  iHTMLCol = HTMLDoc.getElementsByTagName("input");
  foreach (IHTMLElement iHTMLEle in iHTMLCol)
  {
    if (iHTMLEle.getAttribute("name", 0) != null)
    {
      strAttriName = iHTMLEle.getAttribute("name", 0).ToString();
      if (strAttriName == "firstname")
      {
        iHTMLEle.setAttribute("value", FirstName, 0);
        continue;
      }
      if (strAttriName == "lastname")
      {
        iHTMLEle.setAttribute("value", LastName, 0);
        continue;
      }
      if (strAttriName == "reg_email__")
      {
        iHTMLEle.setAttribute("value", EmailID, 0);
        continue;
      }
      if (strAttriName == "reg_passwd__")
      {
        string s = GetRandomString();
        Random ran = new Random();
        iHTMLEle.setAttribute("value", s+ran.Next(1111,9999), 0);
        break;
      }
    }
  }
  iHTMLCol = HTMLDoc.getElementsByTagName("option");
  foreach (IHTMLElement iHTMLEle in iHTMLCol)
  {
    try
    {
      if (iHTMLEle.innerText.Contains("Male"))
      {
        iHTMLEle.setAttribute("selected", "selected",0);
      } 
      if (iHTMLEle.innerText.Contains("Jun"))
      {
        iHTMLEle.setAttribute("selected", "selected", 0);
      }
      Random ran = new Random();
      if (iHTMLEle.innerText.Contains("4"))
      {
        iHTMLEle.setAttribute("selected", "selected", 0);
      }
      Random ran1 = new Random();
      if (iHTMLEle.innerText.Contains(ran1.Next(1920,1985).ToString()))
      {
        iHTMLEle.setAttribute("selected", "selected", 0);
      }
    }
    catch { }
  }

  iHTMLCol = HTMLDoc.getElementsByTagName("input");
  int i = 0;
  foreach (IHTMLElement iHTMLEle in iHTMLCol)
  {
    string s = iHTMLEle.className;
    if (iHTMLEle.className == "UIButton_Text" && iHTMLEle.getAttribute("value", 0).ToString() == "Sign Up")
    {
      if (i != 0)
      {
        iHTMLEle.click();
        break;
      }
      i++;
    }
  }

  private void WBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
  {
    if (CurrentSocial == "facebook")
    {
      FacebookRegistration();
    }
  }
}
在facebook.com的注册页面中,有验证码,如果您转到页面来源,您将只看到以下内容:

<input type="hidden" id="captcha_persist_data" name="captcha_persist_data" value="AAAAAQAQiCw5zhFGOsVF6TbDBX8d_wAAAGvqENqFy5KkvMip5AIv3QSF7BS7goiHfAC7fTkzr8hW61cq3s1d23Tw7m-WAi-21Uzt1l3frkLf4obBEuZZMwga_hbcUhnWXu4P382QsJ7J0WtAbo5USXWuVjzv_KD1SMyTWhf34AGorQd27dFqZc0a" /?;
如果浏览此url,您将获得如下验证码url:

var RecaptchaState = {
challenge : '02UflxsCli4nYg-oG48n5bNDm6ywMlvE62UwXQssF__eJAfSiv2TXuac-1tbu2FThwakgH65IdExWDy9qyr1sYbRuwyQFZD7Dk1eE_fXuoSn9tliqnYeMq__LEF6-GTEm0H6TChOtvpwL2G3C1BsBriw8FFaKqkaTwbNoJeAfzI_j9qYnPaqtHJYillevhRsxyaQVYfLvqai7p0Sfu3849BFpamlbfE3to3KTXi5cZ0xlmuGkMkuZhvq_GyK_z-ZXq9z_Ls8xZlywN0jlIOsSEvI9QJq_69X-X3Moq9lFBcmqWYaKbf7faRQt19aJGB4DdBC1PqQIC',
timeout : 25000,
server : 'http://api.recaptcha.net/',
site : '6LezHAAAAAAAADqVjseQ3ctG3ocfQs2Elo1FTa_a',
error_message : '',
programming_error : '',
is_incorrect : false
};

Recaptcha.challenge_callback();
http://api.recaptcha.net/image?c=027CxC4LbBbzVJKy-1xX_wRBf7Gmi4AvgikDVaKeYjBCmiX4XBzGymWC7XRfWx4LLQgfscKnfeB7U305MhlVN0X4vAkrK84ac3jybRJ3UJPUQ8rnlJOS7lqNqpRpolYSd6WBxMShhrzqbx-5ScL0JAsN7cJRMLMqeQsPHg1QB7g4kp4KxKO1aEONsUibahnCC8baLHGSIYJ5Q1Gcr1MPvJ9i_a5qQCilT1tWXwAKE_fkVGi31_un3OxHbNm9UmMemRp7IZ9C9ZLU4IjMApxVJOWXMYqjt588z_ZVcYG2dtY6Dh0b4R1aAQcp0UXFTggdWtsjPw7wIC
原始验证码url如下所示:

var RecaptchaState = {
challenge : '02UflxsCli4nYg-oG48n5bNDm6ywMlvE62UwXQssF__eJAfSiv2TXuac-1tbu2FThwakgH65IdExWDy9qyr1sYbRuwyQFZD7Dk1eE_fXuoSn9tliqnYeMq__LEF6-GTEm0H6TChOtvpwL2G3C1BsBriw8FFaKqkaTwbNoJeAfzI_j9qYnPaqtHJYillevhRsxyaQVYfLvqai7p0Sfu3849BFpamlbfE3to3KTXi5cZ0xlmuGkMkuZhvq_GyK_z-ZXq9z_Ls8xZlywN0jlIOsSEvI9QJq_69X-X3Moq9lFBcmqWYaKbf7faRQt19aJGB4DdBC1PqQIC',
timeout : 25000,
server : 'http://api.recaptcha.net/',
site : '6LezHAAAAAAAADqVjseQ3ctG3ocfQs2Elo1FTa_a',
error_message : '',
programming_error : '',
is_incorrect : false
};

Recaptcha.challenge_callback();
http://api.recaptcha.net/image?c=027CxC4LbBbzVJKy-1xX_wRBf7Gmi4AvgikDVaKeYjBCmiX4XBzGymWC7XRfWx4LLQgfscKnfeB7U305MhlVN0X4vAkrK84ac3jybRJ3UJPUQ8rnlJOS7lqNqpRpolYSd6WBxMShhrzqbx-5ScL0JAsN7cJRMLMqeQsPHg1QB7g4kp4KxKO1aEONsUibahnCC8baLHGSIYJ5Q1Gcr1MPvJ9i_a5qQCilT1tWXwAKE_fkVGi31_un3OxHbNm9UmMemRp7IZ9C9ZLU4IjMApxVJOWXMYqjt588z_ZVcYG2dtY6Dh0b4R1aAQcp0UXFTggdWtsjPw7wIC

然后您将获得captcha,但这不是我想要的,因为javascript每次都会更改captcha图像。因此,我没有得到当前在webbrowser中显示的验证码。是否可以改用reCaptcha.net?你可以免费注册,将脚本添加到你的页面,然后他们完成其余的工作。他们可能没有为视障人士提供缩放功能,但他们有文字到语音的功能。如果你不需要的话,再发明轮子是没有意义的。当然,您需要在页面上访问internet,因此如果您的站点是某种内部网或专用网络,这可能会成为一个问题。希望能有所帮助。

是否可以改用reCaptcha.net?你可以免费注册,将脚本添加到你的页面,然后他们完成其余的工作。他们可能没有为视障人士提供缩放功能,但他们有文字到语音的功能。如果你不需要的话,再发明轮子是没有意义的。当然,您需要在页面上访问internet,因此如果您的站点是某种内部网或专用网络,这可能会成为一个问题。希望对你有所帮助。

你可以在那里阅读。或者,您可以解析页面以获取图像的URL,并查看是否可以

你可以在那里阅读。或者,您可以解析页面以获取图像的URL,并查看是否可以


我想,您没有仔细阅读我的留言。好的,我再解释一遍,如果你要在facebook.com上创建帐户,验证码就会出现在那里。如果您看到页面源代码,则无法获得任何特定的验证码url,您只能获得一个链接,该链接调用java脚本。每当java脚本运行验证码时,url就会出现在网页上。对不起,我不知道picturebox和WebBrowser控件==facebook。如果你问的是一个与Facebook相关的问题,请在你的问题中这样说。我想,你没有仔细阅读我的信息。好的,我再解释一遍,如果你要在facebook.com上创建帐户,验证码就会出现在那里。如果您看到页面源代码,则无法获得任何特定的验证码url,您只能获得一个链接,该链接调用java脚本。每当java脚本运行验证码时,url就会出现在网页上。对不起,我不知道picturebox和WebBrowser控件==facebook。如果你问的是一个与Facebook相关的问题,请在你的问题中这样说。