SkyLinE215
Сообщений: -986
Оценки: 0
Присоединился: 2007-08-27 10:25:44.570000
|
вот нарыл тебе код void __fastcall TFMain::bUploadClick(TObject *Sender)
{
AnsiString slHtmlFormName = "UploadForm"; // <form name="UploadForm"...
IHTMLDocument2 *pHTMLDocument = NULL;
if(SUCCEEDED(CppWebBrowser->Document->QueryInterface(
IID_IHTMLDocument2, (LPVOID*)&pHTMLDocument)))
{
if(pHTMLDocument != NULL)
{
IHTMLElementCollection *pAll = NULL;
if(SUCCEEDED(pHTMLDocument->get_all(&pAll)) && pAll)
{
TVariant vName="userfile", vName2 = "passwd", vName0 = "MAX_FILE_SIZE";
TVariant vIndex=0;
// put into hidden field <hidden...
IDispatch *pDisp0=NULL;
if(SUCCEEDED(pAll->item(vName0, vIndex, &pDisp0)) && pDisp0)
{
IHTMLInputHiddenElement *pSize = NULL;
if(SUCCEEDED(pDisp0->QueryInterface(IID_IHTMLInputHiddenElement,
(LPVOID*)&pSize)) && pSize)
{
pSize->put_value(WideString("150000"));
pSize->Release();
}
pDisp0->Release();
}
// paste into file field <file...
IDispatch *pDisp=NULL;
if(SUCCEEDED(pAll->item(vName, vIndex, &pDisp)) && pDisp)
{
IHTMLInputFileElement* pFile = NULL;
if(SUCCEEDED(pDisp->QueryInterface(IID_IHTMLInputFileElement,
(LPVOID*)&pFile)) && pFile)
{
// Copy Full FileName To Clipboard
Clipboard()->SetTextBuf(sFile.c_str());
pFile->select();
// Paste from ClipBoard to "userfile"
CppWebBrowser->ControlInterface->ExecWB(Shdocvw_tlb::OLECMDID_PASTE,
Shdocvw_tlb::OLECMDEXECOPT_DODEFAULT, Variant("userfile"));
pFile->Release();
}
pDisp->Release();
}
// put into input element <input...
IDispatch *pDisp2=NULL;
if(SUCCEEDED(pAll->item(vName2, vIndex, &pDisp2)) && pDisp2)
{
IHTMLInputElement *pInput = NULL;
if(SUCCEEDED(pDisp2->QueryInterface(IID_IHTMLInputElement,
(LPVOID*)&pInput)) && pInput)
{
pInput->put_value(WideString("if5edU7dk4"));
pInput->Release();
}
pDisp2->Release();
}
}
pAll->Release();
}
// click SUBMIT()
IHTMLElementCollection *HTMLForms = NULL;
if(SUCCEEDED(pHTMLDocument->get_forms(&HTMLForms)) && HTMLForms)
{
// slHtmlFormName <form name="UploadForm"...>
TVariant vName3 = slHtmlFormName;
TVariant vIndex3 = 0;
IDispatch *pDisp3 = NULL;
if(SUCCEEDED(HTMLForms->item(vName3, vIndex3, &pDisp3)) && pDisp3)
{
IHTMLFormElement *HTMLForm = NULL;
if(SUCCEEDED(pDisp3->QueryInterface(IID_IHTMLFormElement,
(LPVOID*)&HTMLForm)) && HTMLForm)
{
HTMLForm->submit(); // нажимаем кнопку submit
HTMLForm->Release();
}
pDisp3->Release();
}
HTMLForms->Release();
}
pHTMLDocument->Release();
}
} Если хоть немного OLE понимаешь, сам разберешся в коде и будешь менять его по своему вкусу..
|