Будет ли работать код из Приложения Windows Forms в Консольном приложении? - C#
Формулировка задачи:
Имеется исходник, можно ли его заставить работать в Консольном приложении? Ведь там нету кнопок,picturebox и т.д.
Вот код:
Листинг программы
- using System;
- using System.ComponentModel;
- using System.Drawing;
- using System.Windows.Forms;
- using System.Net;
- using Akumu.Antigate;
- using Akumu.Antigate.Tools;
- namespace ReCaptchaExample
- {
- public partial class Main : Form
- {
- public Main()
- {
- InitializeComponent();
- }
- private void button2_Click(object sender, EventArgs e)
- {
- button2.Enabled = false;
- worker.RunWorkerAsync();
- }
- private void worker_DoWork(object sender, DoWorkEventArgs e)
- {
- string url = pageUrl.Text.Trim();
- if (string.IsNullOrEmpty(url))
- {
- MessageBox.Show("Укажите URL");
- return;
- }
- using (WebClient client = new WebClient())
- {
- // загружаем страницу содержащую ReCaptcha
- string page = client.DownloadString(url);
- try
- {
- // массив ссылок на js
- string[] js = ReCaptcha.GetObjectsUrlsOnPage(page);
- if (js == null)
- {
- MessageBox.Show("ReCaptcha не обноружена на указанной странице");
- }
- else
- {
- string jsPage = client.DownloadString(js[0]);
- // работаем с первым js на странице
- ReCaptchaObject rco = ReCaptcha.GetObject(jsPage);
- if (rco == null)
- MessageBox.Show("ReCaptcha на странице содержит ошибку");
- else
- {
- pictureBox1.Invoke((MethodInvoker)delegate { pictureBox1.ImageLocation = rco.ImageURL; });
- textBox1.Invoke((MethodInvoker)delegate { textBox1.Text = rco.Challenge; });
- }
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace, ex.GetType().ToString());
- }
- }
- }
- private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- button2.Enabled = true;
- }
- }
- }
Решение задачи: «Будет ли работать код из Приложения Windows Forms в Консольном приложении?»
textual
Листинг программы
- private static void DoWork()
- {
- Console.WriteLine("Введите URL: ");
- string url = Console.ReadLine();
- using (WebClient client = new WebClient())
- {
- // загружаем страницу содержащую ReCaptcha
- string page = client.DownloadString(url);
- try
- {
- // массив ссылок на js
- string[] js = ReCaptcha.GetObjectsUrlsOnPage(page);
- if (js == null)
- {
- Console.WriteLine("ReCaptcha не обноружена на указанной странице");
- }
- else
- {
- string jsPage = client.DownloadString(js[0]);
- // работаем с первым js на странице
- ReCaptchaObject rco = ReCaptcha.GetObject(jsPage);
- if (rco == null)
- Console.WriteLine("ReCaptcha на странице содержит ошибку");
- else
- {
- Console.WriteLine(rco.Challenge);
- }
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- }
- }
- static void Main(string[] args)
- {
- DoWork();
- Console.ReadKey();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д