Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 06:06

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Thread.Sleep oder Timer? [C#]

Discussion on Thread.Sleep oder Timer? [C#] within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
Zweihorn.'s Avatar
 
elite*gold: 50
Join Date: Feb 2013
Posts: 925
Received Thanks: 682
Thread.Sleep oder Timer? [C#]

Hey,
bin gerade dabei einen Account Creator für Aeriagames zu machen.
Bin schon ziemlich weit, kämpfe aber noch mit einer Kleinigkeit.

So siehts aus wenn ich es starte:
Und so soll es aussehen:

Sobald ich das Programme starte, connectet der Webbrowser, (der erstmal nur zum Testen sichtbar ist), soweit so gut. Allerdings möchte ich gerne auf den "Get Captcha"-Button verzichten, und möchte, dass der Captcha ebenfalls direkt geladen wird.

Habe es so schon probiert, funktioniert allerdings nicht:

Und zwar, weil die Seite noch nicht ganz geladen ist, wenn er den Captcha laden möchte. Hab dann rumgegoogelt und es mit'm Thread.Sleep probiert, funktioniert allerdings auch nicht, weil der ganze Thread dann ja gefreezt ist.
Und mit dem Timer komm ich nicht ganz so weiter ...

Wollte einfach mal fragen, was ich an dieser Stelle benutzen kann, damit er z.B. erst die Seite zu Ende laden lässt oder einfach 3 Sekunden wartet, bevor er das Captcha abfragt.
Zweihorn. is offline  
Old 01/11/2015, 04:05   #2

 
.Opcode's Avatar
 
elite*gold: 289
Join Date: Oct 2011
Posts: 543
Received Thanks: 28
Warum das ganze nun über das WebBrowser-Control läuft ist mir schleierhaft, du kannst auch ein WebRequest nehmen, ist nicht nur von der Perfomance besser .

Um auf deine Frage zu antworten, es gibt ein Event, welches überprüft ob die Website im Control vollständig geladen wurde, wenn ja, dann erst das gewünschte auslesen lassen.
.Opcode is offline  
Thanks
1 User
Old 01/11/2015, 12:38   #3
 
D3luxe.'s Avatar
 
elite*gold: 317
The Black Market: 142/0/0
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
Ich weiß nicht genau, was du als Browser/Webdriver benutzt, ich gehe mal von Selenium oä. aus...
Normalerweise sollte bei Navigate schon automatisch gewartet werden, bis die Seite vollständig geladen wurde.

Ansonsten kannst du auch irgendwo ne Option setzen, dass bis zu x Sekunden gewartet werden soll, wenn ein Element angesprochen wird, das (noch) nicht verfügbar ist.

Das Captcha sollte aber auch einfach mit nem RegEx aus dem Quellcode herauszuholen sein.

Nebenbei würde ich es auch erst mal mit nem WebRequest, bzw. besser: HttpClient, weil der Async benutzt werden kann, versuchen.

Edit: Nvm, ist ja nur ne ganz normale Webbrowser Control...
D3luxe. is offline  
Old 01/11/2015, 12:55   #4
 
Zweihorn.'s Avatar
 
elite*gold: 50
Join Date: Feb 2013
Posts: 925
Received Thanks: 682
Quote:
Originally Posted by D3luxe. View Post
Ich weiß nicht genau, was du als Browser/Webdriver benutzt, ich gehe mal von Selenium oä. aus...
Normalerweise sollte bei Navigate schon automatisch gewartet werden, bis die Seite vollständig geladen wurde.

Ansonsten kannst du auch irgendwo ne Option setzen, dass bis zu x Sekunden gewartet werden soll, wenn ein Element angesprochen wird, das (noch) nicht verfügbar ist.

Das Captcha sollte aber auch einfach mit nem RegEx aus dem Quellcode herauszuholen sein.

Nebenbei würde ich es auch erst mal mit nem WebRequest, bzw. besser: HttpClient, weil der Async benutzt werden kann, versuchen.
ehm, das geht ein wenig über meine möglichkeiten D:
das programm an sich funktioniert ja auch schon, also das captcha, die eingabe von username und pw, der submit button.

nur weiß ich noch nicht was ich dafür einsetzen soll. habe es eben mit dem WebBrowserDocumentCompletedEvent probiert, aber klappt noch nicht ._.

Weiß jemand warum?
Zweihorn. is offline  
Old 01/11/2015, 14:01   #5
 
D3luxe.'s Avatar
 
elite*gold: 317
The Black Market: 142/0/0
Join Date: Feb 2012
Posts: 2,089
Received Thanks: 882
Es wäre mal interessant zu sehen, wie du an das Captcha kommst.

Das ist nämlich per iframe in die Seite eingebunden.
PHP Code:
<iframe src="https://www.google.com/recaptcha/api/noscript?k=6LcR-MUSAAAAAODqgJEVRJl-lPlhEfZqxaEzRgRq" height="300" width="500" frameborder="0"></iframe
Es ist mir schleierhaft, wie du das Ganze mit einer WebBrowser Control bewerkstelligen willst^^ Aber ich lasse mich gerne belehren.
Ich meine, mit HttpClient wäre das kein Problem, weil du automatisch die selben Cookies etc. hast.

Das mit dem DocumentCompleted Event funktioniert zumindest, habe es eben ausprobiert. Die Seite ist komplett geladen, du kannst dir den Source Code zur Überprüfung mit
PHP Code:
File.WriteAllText("source.txt"webBrowser1.DocumentText); 
ausgeben lassen.
D3luxe. is offline  
Old 01/11/2015, 14:10   #6
 
Zweihorn.'s Avatar
 
elite*gold: 50
Join Date: Feb 2013
Posts: 925
Received Thanks: 682
Quote:
Originally Posted by D3luxe. View Post
Es wäre mal interessant zu sehen, wie du an das Captcha kommst.

Das ist nämlich per iframe in die Seite eingebunden.
PHP Code:
<iframe src="https://www.google.com/recaptcha/api/noscript?k=6LcR-MUSAAAAAODqgJEVRJl-lPlhEfZqxaEzRgRq" height="300" width="500" frameborder="0"></iframe
Es ist mir schleierhaft, wie du das Ganze mit einer WebBrowser Control bewerkstelligen willst^^ Aber ich lasse mich gerne belehren.
Ich meine, mit HttpClient wäre das kein Problem, weil du automatisch die selben Cookies etc. hast.

Das mit dem DocumentCompleted Event funktioniert zumindest, habe es eben ausprobiert. Die Seite ist komplett geladen, du kannst dir den Source Code zur Überprüfung mit
PHP Code:
File.WriteAllText("source.txt"webBrowser1.DocumentText); 
ausgeben lassen.
pn'd bezüglich des captcha's.

probiere das ganze dann mal übern httpclient, mal schauen wie weit ich komme.
Zweihorn. is offline  
Old 01/12/2015, 00:42   #7
 
elite*gold: 0
Join Date: Aug 2005
Posts: 80
Received Thanks: 13
Hier habe ich dir mal ein Projekt gemacht wo du Beispielhaft siehst wie es mit einer WebBrowser Komponente geht.

Exceptionhandling habe ich aber jetzt nicht mit eingebaut, das kannst du ja dann noch machen und die Nutzereingaben überprüfen.



Bild
teto is offline  
Thanks
3 Users
Reply


Similar Threads Similar Threads
[C#]Timer in einem Thread verwenden
03/16/2014 - .NET Languages - 5 Replies
Hey, ich habe ein kleines Problem, ich möchte einen Timer in einem neuen Thread verwenden, jedoch geht es mit timer1.Start(); nicht, der Timer startet nicht. Gibt es dafür eine Lösung ?
[?] Timer oder Background Worker? [VB.net]
10/27/2012 - .NET Languages - 4 Replies
Heyho liebe Coder Community, Was lohnt sich mehr bei mehrfachen HttpWebRequests und Regex Splittings, der Timer oder der Backgroundworker mit einem Loop? lg
Job Timer (Taxi Timer, etc)
09/01/2011 - SRO Hacks, Bots, Cheats & Exploits - 2 Replies
A small utility to keep track of jobs that need timing. http://img834.imageshack.us/img834/6076/jt01.png Always read the changelog! To get access to Job Timer, register at "www.error- soft.net" ( without the spaces between the - ) Press thanks if this helps at all.



All times are GMT +2. The time now is 06:07.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.