PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vb.net Bild anzeigen



Bl1zz4rD
02.12.2010, 14:19
Hallo,

ich hab das folgende Problem das ich nicht weis wie ich ein Bild auf einer Seite in einer Picturebox anzeigen kann.
Es ist ein Captcha, also wenn man auf den Directlink geht ist das Bild anders als wenn man vorher drauf war.
Also z.B so wie beim Web Generator, der das Captcha dann anzeigt.

Code-C4
02.12.2010, 14:23
PictureBox1.ImageLocation = ("http://lala.de/dingens.jpg")

sowas?

K-Gee
02.12.2010, 14:27
Jo er meint sowas, aber funkt die methode eig. ?
Wie wärs mit WebClient?

Bl1zz4rD
02.12.2010, 14:28
sowas?

Ja nur das Problem das wenn man dann auf die Seite geht das Bild anders ist also es ist halt ein Captcha, habs im ersten Post gar nicht erwähnt.

K-Gee
02.12.2010, 14:36
https://customer.cc.at.paysafecard.com/seam/resource/captcha

z.B.

Einfach rechtsklick auf Captcha und Grafik-Info anzeigen, falls du FireFox benutzt.

Bl1zz4rD
02.12.2010, 14:40
https://customer.cc.at.paysafecard.com/seam/resource/captcha

z.B.

Einfach rechtsklick auf Captcha und Grafik-Info anzeigen, falls du FireFox benutzt.

Also eigentlich meine ich das so:

Das Programm Connectet auf eine Seite füllt alles aus und dann kommt das captcha, so das soll dann in der Picturebox angezeigt werden.

K-Gee
02.12.2010, 14:58
Hmm wenn du ein anfänger bist dann benutzt du den Webbrowser Element.
Wenn du schon fortgeschritten bist benutzt du HTTPWebRequests (Tuts gibts hier viele aufm Forum)

Grüße

Code-C4
02.12.2010, 15:12
Lösung:



PictureBox1.ImageLocation = ("https://customer.cc.at.paysafecard.com/seam/resource/captcha")


getestet wird angezeigt^^

krusty
03.12.2010, 19:30
Es ist ein Captcha, also wenn man auf den Directlink geht ist das Bild anders als wenn man vorher drauf war.was habt ihr daran nicht verstanden ?
ich hatte das selbe problem. du musst das bild mitm http request runterladen. du musst den selber cookiecontainer verwenden. Manchmal musst du noch versteckte strings im request mitsenden... dazu müsstest du dir den http request vom laden des bildes genauer anschauen...

hoohead
26.10.2011, 22:05
Sich die Grafik mal eben per Http-Request ziehen wird nicht funktionieren, weil zuerst analysiert werden muss wie der eigentliche Request (und die Sicherheitsfunktionen des Captchas) arbeiten.

Unter VB.NET gibt es das Webbrowser Control (einfach mal danach googlen, gibt genügend Anleitungen zur Funktionsweise).
Dadurch wird quasi der Internetexplorer in Deine VB App "integriert" und Du kannst so ganz einfach auf die enstprechenden Elemente zugreifen (ganz nebenbei musst Du Dir keine Gedanken machen, welch Schutzmechanismen die Captcha Entwickler sich so ausgedacht haben.

Habe vor kurzem einen Ebay Bietomat mit dieser Technik umgesetzt (kleine Übungsaufgabe zwischendurch *g) - ist recht easy das Ganze.

http://dl.dropbox.com/u/21637051/ebay-bieter.mp4

Death~
26.10.2011, 22:28
Unter VB.NET gibt es das Webbrowser Control (einfach mal danach googlen, gibt genügend Anleitungen zur Funktionsweise).
Dadurch wird quasi der Internetexplorer in Deine VB App "integriert" und Du kannst so ganz einfach auf die enstprechenden Elemente zugreifen (ganz nebenbei musst Du Dir keine Gedanken machen, welch Schutzmechanismen die Captcha Entwickler sich so ausgedacht haben.

Jo, als ich auf deinem Blog gelesen habe, dass du das Webbrowser Control in .NET verwendest, es erst nicht geglaubt. Was tut dich denn dieses Control so an ? :D Das ist eine sinnlose Spielerei, man verwendet in der Regel immer die HttpWebRequest-Klasse für solche Zwecke. Die erzeugt das selbe Ergebnis nur schneller und stabiler (ist nicht auf IE angewieser *kotz*).

BTT: Ich hatte gestern zufällig mit dem selben Problem zu kämpfen. Wenn das Captcha von ReCaptcha ist, dann musst du 3 Sachen aus dem Quelltext der Seite auslesen, auf dem das Captcha angezeigt wird:

1. Securitytoken
2. Humanverify-Code
3. Challenge-Code

Zusätzlich musst du natürlich den POST-Parameter mit den neu erschienen Worten ergänzen (WortA+WortB).

Falls es nicht ReCaptcha sein sollte, schneide die HTTP-Header trotzdem mal mit, dürft ähnlich funktionieren.

MfG

ReiDC0Re
26.10.2011, 22:40
Jo, als ich auf deinem Blog gelesen habe, dass du das Webbrowser Control in .NET verwendest, es erst nicht geglaubt. Was tut dich denn dieses Control so an ? :D Das ist eine sinnlose Spielerei, man verwendet in der Regel immer die HttpWebRequest-Klasse für solche Zwecke. Die erzeugt das selbe Ergebnis nur schneller und stabiler (ist nicht auf IE angewieser *kotz*).

Ja da hat er Recht. Noch Stabiler ist es wenn man nur mit Paketen arbeitet. Und keine der Klassen nutzt.




BTT: Ich hatte gestern zufällig mit dem selben Problem zu kämpfen. Wenn das Captcha von ReCaptcha ist, dann musst du 3 Sachen aus dem Quelltext der Seite auslesen, auf dem das Captcha angezeigt wird:

*hust* ich erinnere mich :D nich wahr? *nyan*


Was hoohead da so vor sich hinbrabbelt ist nicht wahr. Natürlich kannst du per das ganze per Http Request ziehen. Nur bei Captchas musst du oft die Keys haben um das Bild zu erhalten. Die Keys sind entweder in den Cookies oder im Quelltext vorhanden.

Bei recaptcha siehts folgendermaßen aus

https://www.google.com/recaptcha/api/noscript?k=(urlpart (https://www.google.com/recaptcha/api/noscript?k=%28urlpart))

den restlichen urlpart findet man im Quelltext der Seite
*nyan*

hoohead
27.10.2011, 22:10
@Death~ Selbstverständlich verwenden wir für solche "Jobs" die HttpWebRequest-Klasse, einer meiner ersten Versuche in VB.Net war der 4Chan Grabber
http://hoohead.hoohost.org/2011/07/4chan-grabber-windows-version
der natürlich kein Webbrowser Control einsetzte.

Wenn Jemand in so einem Forum die Frage stellt, warum die in die PictureBox geladenen Bilder eines Captchas anders aussehen, als wenn er die Seite direkt besucht, dann fehlen dem Fragesteller noch ganz andere Basics als der reine Umgang mit der Entwicklungsumgebung.
Ist ja auch nicht schlimm, dafür gibt es ja genau so Foren um sich auszutauschen.

Aus diesem Grund war meine Empfehlung es mit dem Webbrowser Control zu versuchen, da man hier erst mal getrost das Wissen um die technischen Einzelheiten die sich Serverseitig abspielen vergessen kann.

@ReiDC0Re von Dir erwarte ich dass Du meinen Ebay Bietomat nach codest, schön alle Request manuell setzen und dabei die Zeit stoppen, wie lange Du für das entwickeln brauchst (es sind 30 Minuten zu schlagen) ;)

till7
27.10.2011, 22:21
Aus diesem Grund war meine Empfehlung es mit dem Webbrowser Control zu versuchen, da man hier erst mal getrost das Wissen um die technischen Einzelheiten die sich Serverseitig abspielen vergessen kann.

Damit förderst du jedoch schlampige Programmierung.

An den Thread Starter:
Ich würde dir empfehlen dich mal mit PHP zu befassen und evt selber ein Captcha zu erstellen, damit du verstehst wie sowas genau funktioniert.

Captchas sind so aufgebaut, dass sie bei jedem Seitenaufruf ein neues Bild anzeigen. Dies kann man z.B mit Sessions machen.
-> http://www.php-einfach.de/php-tutorial/php-sessions.php

Ich denke, bei manchen Seiten müsstest du dann noch den User Agent mitsenden und einige andere Sachen.
Dazu empfehle ich dir das HTTP Protokoll genauer anzuschauen.
-> http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol

Dazu noch weitere interessante Links:
-> http://de.wikipedia.org/wiki/User_Agent
-> http://de.wikipedia.org/wiki/HTTP-Cookie

Aber jeder fängt "klein" an und arbeitete irgendwann mit dem Webbrowser Control. Wenn du es erstmal mit dem probieren willst, kannst du das ja tun.

MfG

Bluescreen
01.06.2012, 19:46
ES wäre auch ganz hilfreich zu erwähnen von welcher Seite du sprichst.
Denn wen du es wirklich mit dem Webbrowser machen möchtest dann ist der Code der Site sehr entscheidend.
Dazu versucht man erstmal raus zubekommen wie der link ist diesen kann man mit der id rausbekommen.
Also über eine Schleife den Src der id auslesen und dann mit der Picturebox navigieren.
Wenn du es nicht hinbekommen kannst sag bescheid ich helfe dir gerne.

ReiDC0Re
01.06.2012, 20:48
Oo
Wir üben den Sport der Nekrophilie wieder aus? Deine Einsatz in ehren, aber war eigentlich schon soweit geklärt wenn ich mich nicht irre?