TCppWebBrowser ButtonClick
-
Hi,
ich habe folgende Funktion leicht geändert um Formulare auf Websites im CppWebBrowser auszufüllen. Allerdings schaffe ich es nicht, einen Button klicken zu lassen.Hier die Funktion:
BOOL FillElement (TCppWebBrowser *CppWebBrowser, TVariant NameStr, char *Text) { //CppWebBrowser->Navigate(WideString(URL).c_bstr()); IHTMLDocument2 *HTMLDoc; if(SUCCEEDED(CppWebBrowser->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&HTMLDoc))) { //CppWebBrowser->Navigate((TVariant)URL); IHTMLElementCollection *pAll = NULL; if(SUCCEEDED(HTMLDoc->get_all(&pAll))) { TVariant name = NameStr; // hier kommt der name des Feldes hin (siehr HTML source) IDispatch *pDisp = NULL; TVariant index=0; if(SUCCEEDED(pAll->item(name, index, &pDisp))) { if(pDisp) { IHTMLInputElement *pInput = NULL; // mshtml.h pDisp->QueryInterface(IID_IHTMLInputElement, (LPVOID*)&pInput); pDisp->Release(); if(pInput) { WideString mybuffer; pInput->put_value (WideString(Text)); //hier der String, der zu schreiben ist. return TRUE; } pInput->Release(); } } } pAll->Release(); } HTMLDoc->Release(); return TRUE; }
Verwendet folgendermaßen.
CppWebBrowser->Navigate(WideString("www.irgendas.de")); FillElement(CppWebBrowser, "username", "Schlurmann");
Das klappt aucg ganz gut, allerdings habe ich keine Möglichkeit gefunden einen Button klicken zu lassen. Name bzw. id wären "submit". Aber welchen "Text" oder Wert soll ich dem Button geben? Oder gibt es da 'ne andere Funktion für pInput?
-
http://www.bytesandmore.de/rad/cpp/snipp/sc08019.php
Auf der Seite nach "submit" suchen.
-
Hab ich mir auch schon angesehen, aber es gibt sogut wie keine Form die einen name="" hat. Gibt es da einen default name?
Edit: Mit C&P geht natürlich wieder...
-
Hallo,
ich wollte auch eine Webseite mittels CBuilder 2007 und CPPWebBrowser anzeigen und Formulardaten vorausfüllen.
Leider funktioniert das gar nicht. Z.B. Google. Ich habe versucht mittels CPPWebBrowser Google zu öffnen und in das Suchfenster z.B. "CPPWebBrowser" einzutragen. Also hab ich die google-Seite als Quelltext angeschaut und auch das Eingabe Input-Textfeld gefunden. Heißt einfach q.
Rufe ich aber o.g. Funktionen auf, steigt er immer an der selben stelle aus :
if(SUCCEEDED(pAll->item(name, index, &pDisp))) { if(pDisp) { ...
&pDisp ist bei mir immer NULL. Hab es auch mit anderen Webseiten und anderen Input - Textfeldern versucht. Immer das selbe
Weiß jemand Rat ?