Announcement

Collapse
No announcement yet.

WatiN.Core dll threadübergreifend verwenden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WatiN.Core dll threadübergreifend verwenden

    Liebe Leser/inen,

    Ich habe ein Problem, ich habe in meinem Programm die WatiN.Core.dll eingebunden!
    ( http://watin.sourceforge.net/gettingstarted.html)
    Ich will einen Login auf einer Homepage automatisieren.
    Und den Login will ich in einen anderen Thread verlagern, damit die Form nicht einfriert.

    Code:
    using WatiN.Core;
    .
    .
    .
    public partial class Form1 : System.Windows.Forms.Form
        {
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
    
                //**********Variablen für den Login werden convertiert**********
                Email = EmailTextBox1.Text;
                Passwort = PasswortTextBox2.Text;
                URL = URLTextBox3.Text;
    
    
    
                //**********Der neue Thread wird gestartet**********
                backgroundWorker1.RunWorkerAsync();
    
            }
    
    
    // **********Der neue Thread**********
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
    
                //**********URL wird aufgerufen**********
    
    
                Browser IExplorer = new IE();
    
                IExplorer.GoTo(URL);
    
               /**********hier würde der Login später geschehen**********
             }

    So mein Problem ist, ich kann unter button1_Click ohne Probleme die Internetseite öffnen, aber wenn ich dies mit einem anderen Thread versuche wie z.B mit dem von mir verwendeten Steuerelement backgroundWorker, funktioniert es nicht .. es kommt folgende fehlermeldung:

    System.Threading.ThreadStateException wurde nicht von Benutzercode behandelt.
    Message=The CurrentThread needs to have it's ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer.
    Source=WatiN.Core
    StackTrace:
    bei WatiN.Core.IE.CheckThreadApartmentStateIsSTA()
    bei WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess)
    bei WatiN.Core.IE..ctor()
    bei WindowsFormsApplication1.Form1.backgroundWorker1_D oWork(Object sender, DoWorkEventArgs e) in C:\Users\Packard Bell\Desktop\Projekt\Svz-SpamBot-Form-GB\SVZ_SpamBot-Forms\SVZ_SpamBot-Forms\Form1.cs:Zeile 77.
    bei System.ComponentModel.BackgroundWorker.OnDoWork(Do WorkEventArgs e)
    bei System.ComponentModel.BackgroundWorker.WorkerThrea dStart(Object argument)
    InnerException:



    Ich hoffe jemand kann damit etwas anfangen und mir evtl. sagen wie ich das Problem lösen kann, um mit dem Thread eine Website aufzurufen..


    Vielen Dank
    MFG
Working...
X