在Picturebox中重新设置 [英] recaptcha in Picturebox

查看:85
本文介绍了在Picturebox中重新设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

无论如何,有没有在Winforms的ppictur ebox中显示reCaptcha?

我尝试过,但是Web浏览器无法加载构成重新输入的脚本
像这样:

Hello every one,

Is there anyway to display a reCaptcha in a ppictur ebox in winforms?

I tried to,but the web browser could not load the scripts that make a recaptcha
like this :

<script src="http://www.google.com/recaptcha/api/js/recaptcha.js" type="text/javascript">


我想获取一个网站的reCaptcha以便使用Winform应用程序登录该网站.


感谢您的帮助.


I want to get the reCaptcha of a website to login that website with a winform application.


Thanks for your help.

推荐答案

看看这个.
以下示例代码适用于图像
试试吧

http://www.dreamincode.net/forums/topic /240108-captcha-code-in-c%23-windows-application/ [
Have a look at this.
The below sample code works for images
try it out

http://www.dreamincode.net/forums/topic/240108-captcha-code-in-c%23-windows-application/[^]


string code;

private void CreateImage()
{
	code = GetRandomText();

	Bitmap bitmap = new Bitmap(200, 50, PixelFormat.Format32bppArgb);
	Graphics g = Graphics.FromImage(bitmap);
	Pen pen = new Pen(Color.Yellow);
	Rectangle rect = new Rectangle(0, 0, 200, 50);
	SolidBrush b = new SolidBrush(Color.Black);
	SolidBrush blue = new SolidBrush(Color.Blue);
	int counter = 0;

	g.DrawRectangle(pen, rect);
	g.FillRectangle(b, rect);

	for (int i = 0; i < code.Length; i++)
	{
		g.DrawString(code[i].ToString(), new Font("Verdena", 10 + rand.Next(14, 18)), blue, new PointF(10 + counter, 10));

		counter += 20;

		int red = 0;
		int white = 11;

		while (white <= 100)
		{
			g.FillRectangle(Brushes.White, 0, red, 200, 10);
			g.FillRectangle(Brushes.White, 0, white, 200, 10);

			red += 20;
			white += 20;
		}
	}

	DrawRandomLines(g);

	pictureBox1.Image = bitmap;

/*	if (File.Exists("bitmap"))
	{
		try
		{
			File.Delete("bitmap");
			bitmap.Save("bitmap");
		}
		catch
		{
		}
	}
*/

//	g.Dispose();
//	bitmap.Dispose();
//	pictureBox1.Image = Image.FromFile(bitmap);
}

private void DrawRandomLines(Graphics g)
{
	SolidBrush green = new SolidBrush(Color.Green);

	for (int i = 0; i < 20; i++)
	{
		g.DrawLines(new Pen(green, 2), GetRandomPoints());
	}
}

private Point[] GetRandomPoints()
{
	Point[] points = { new Point(rand.Next(10, 150), rand.Next(10, 150)), new Point(rand.Next(10, 100), rand.Next(10, 100)) };
	
	return points;
}

private string GetRandomText()
{
	StringBuilder randomText = new StringBuilder();

	if (String.IsNullOrEmpty(code))
	{
		string alphabets = "abcdefghijklmnopqrstuvwxyz1234567890";
		Random r = new Random();
		
		for (int j = 0; j <= 5; j++)
		{
			randomText.Append(alphabets[r.Next(alphabets.Length)]);
		}

		code = randomText.ToString();
	}
	
	return code;
}


这篇关于在Picturebox中重新设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆