在Picturebox中重新设置 [英] recaptcha in Picturebox
本文介绍了在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屋!
查看全文