auf IHTMLInputElement - Click ausführen per Code
-
ich habe folgenden Code auf bytesandmore gefunden über den man ein Formular im Webbrowser sozusagen fernsteuern kann.
Ich möchte nun aber auch das Formular abschicken und das nicht per submit()-Methode vom FormularElement sondern über einen simulierten click() auf den submit-Button.Könnt ihr mir sagen, wie ich auf das "input type=submit"-Element zugreife und diesen click simuliere ?
Bei MSDN konnte ich keine Methode finden, die mich weiterbringen würde...
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/ifaces/inputelement/inputelement.aspIHTMLDocument2 *HTMLDoc = NULL; if(SUCCEEDED(Form1->CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&HTMLDoc))) { IHTMLElementCollection *pAll = NULL; if(SUCCEEDED(HTMLDoc->get_all(&pAll))) { TVariant name = fname; // hier kommt der name des Feldes hin (siehe 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(value)); //hier der String, der zu schreiben ist. } pInput->Release(); } } } pAll->Release(); } HTMLDoc->Release();
-
simonch schrieb:
nicht per submit()-Methode vom FormularElement sondern über einen simulierten click() auf den submit-Button
Rein interessehalber: warum, bzw. was ist der Unterschied?
-
beim Buttonclick wird der Name des Buttons als Postvariable übergeben.
beim "nur"-submit des Formulares nicht...
-
Kennst du denn den Namen des Buttons (im HTML-Code)?
Dann hilft dir das hier vielleicht weiter.