[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

jak programowo zaznaczyæ checkbox, c++

Piotr

8/3/2007 10:43:00 AM

Witam
Chcê zrobiæ automat który wchodzi na stronê www, pobiera jakie¶ pliki (to
zrobi³em), zaznacza wybrane checkbox-y na formularzu i klika na przycisk
"submit" (to wiem jak zrobiæ).

Jak zrobiæ, ¿eby program zaznaczy³ checkboxa ?


4 Answers

max

8/3/2007 5:31:00 PM

0

Piotr pisze:
>> zaznacza wybrane checkbox-y na formularzu i klika na przycisk
> "submit" (to wiem jak zrobia).

tutaj piszesz ze wiesz jak to zrobic....


>> Jak zrobia, ?eby program zaznaczy3 checkboxa ?
>>
>>

a tutaj piszesz z pytaniam jak zrobia to co ju? wiesz.... hmmm

Segmentation Fault

8/3/2007 10:06:00 PM

0

Piotr wrote:
> Witam
> Chce zrobia automat który wchodzi na strone www, pobiera jakie? pliki (to
> zrobi3em), zaznacza wybrane checkbox-y na formularzu i klika na przycisk
> "submit" (to wiem jak zrobia).
>
> Jak zrobia, ?eby program zaznaczy3 checkboxa ?
>

poczytaj sobie o tym, jak s? wysy3ane formularze; o metodach POST i GET,
i kodowaniu zmiennych w formularzach. Generalnie mo?esz ustawia
checkbox-y w nag3ówku http który wysy3asz, albo po "?" w URL strony.

Piotr

8/6/2007 9:50:00 AM

0

> a tutaj piszesz z pytaniam jak zrobiæ to co ju¿ wiesz.... hmmm

mo¿e rzeczywi¶ci ema³o precyzyjnie siê wyrazi³em :)

>wchodzi na stronê www,
zrobi³em
>pobiera jakie¶ pliki
zrobi³em
>zaznacza wybrane checkbox-y na formularzu
tego nie wiem jak zrobiæ
>klika na przycisk "submit"
to wiem jak zrobiæ


ionic

8/6/2007 4:09:00 PM

0

Jesli tego nie wiesz, to zakladam, ¿e klikasz uzywajac SendMessage :)
To jest bardzo zle podejscie do sprawy. Polecam cos bardziej praktycznego:
Znajac HWND kontrolki html, zdobadz IHTMLDocument3 i operuj tym pointerem dokladnie tak, jak w js. IHTMLDocument* to odpowiednik
'document' w javascript.

document.getElementById("autologin").checked=true; // w c++ napiszemy

IHTMLDocument2 *doc;
// hwnd to okno klasy "Internet Explorer_Server"
// thread powinien uprzednio CoInitialize()

if (!GetDocument(IID_IHTMLDocument3, hwnd, (void**)&doc))
{
....if (SetCheckbox(doc, L"autologin", VARIANT_TRUE)) failed();
....doc->Release();
}
HRESULT SetCheckbox(IHTMLDocument3 *doc, LPWSTR wszId, VARIANT_BOOL bChecked)
{
....HRESULT hr = E_FAIL;
....BSTR bstrName=SysAllocString(wszId); // nullcheck!!
....IHTMLElement *e;
....if (!doc->getElementById(bstrName, &e))
....{
.......IHTMLInputElement *input;
.......if (!e->QueryInterface(IID_IHTMLInputElement , (void**)&input))
.......{
..........hr = input->put_checked(bChecked);
..........input->Release();
.......}
.......e->Release();
....} else NieMaTakiegoNumeru();
....SysFreeString(bstrName);
....return hr
}

HRESULT GetDocument(IID *pIID, HWND hwnd, void **ppDoc)
{
....DWORD dwResult = 0;
....SendMessageTimeout(hwnd, WM_HTML_GETOBJECT, 0, 0, SMTO_ABORTIFHUNG, 10000, &dwResult);
....return ObjectFromLresult(dwResult, pIID, 0, ppDoc);
}