老大们,偶被难住了,BOSS让我做的好难,快来帮一下忙,分全给了。谢谢了,快来,谢了!

standout 2002-04-12 05:04:57
BOSS让我实现这样一个东东。
就是让我写这样一个程序,对WEB页上的一个输入域进行填写字符,比如我写一个ABC进去。应该怎 样实现啊,偶一点思路都没有。在下谢过了。
我想是不是要先把那个输入框的ID取出来,然后向他sendmessage()就行了,可是如何取出那个ID,我鼠标指向那,怎样知道那是一个输入框啊。
谢谢了。谢有例子发给我一个也行。谢了一定给分。
email:haoq@neusoft.com
QQ:53748876
...全文
73 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingzai 2002-04-15
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc.asp?id=183
VCKBASE上有一个这样的例子
  • 打赏
  • 举报
回复
agree with masterz()
standout 2002-04-15
  • 打赏
  • 举报
回复
我再说一下我要实现的程序的功能:
对WEB页上的一个输入域,比如我想写一个100进去,只要运行我的程序,在输入域中点鼠标右键,选个菜单后,就把100填到了那个输入域中了。
那个输入域是别的应用程序时(指当它不是WEB页上的输入时也能实现如上功能)如何实现。

谢谢各位,快帮帮我!
masterz 2002-04-13
  • 打赏
  • 举报
回复
#include "stdafx.h"
#import <mshtml.tlb> // Internet Explorer 5
#import <shdocvw.dll>
#include "Shlwapi.h"
#pragma comment(lib,"Shlwapi.lib")
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
SHDocVw::IShellWindowsPtr m_spSHWinds;
if(m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) == S_OK)
{
IDispatchPtr spDisp;
long nCount = m_spSHWinds->GetCount();
for (long i = 0; i < nCount; i++)
{
_variant_t va(i, VT_I4);
spDisp = m_spSHWinds->Item(va);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (spBrowser != NULL)
{
IDispatchPtr spDisp;
if(spBrowser->get_Document(&spDisp) == S_OK && spDisp!= 0 )
{
MSHTML::IHTMLDocument2Ptr spHtmlDocument(spDisp);
MSHTML::IHTMLElementPtr spHtmlElement;
if(spHtmlDocument==NULL)
continue;
spHtmlDocument->get_body(&spHtmlElement);
if(spHtmlDocument==NULL)
continue;
HRESULT hr;
MSHTML::IHTMLElementCollection* pColl=NULL;
hr=spHtmlDocument->get_all(&pColl);
if(pColl!=NULL&&SUCCEEDED(hr))
{
long lcount = 0;
pColl->get_length(&lcount);
for(int i=0;i<lcount;i++)
{
_variant_t index;
index.vt=VT_I4;
index.intVal=i;
IDispatchPtr disp;
disp=pColl->item(index,index);
if(disp==NULL)
hr=E_FAIL;
else
{
MSHTML::IHTMLInputElementPtr pInput(disp);
if(pInput)
{
BSTR bstrtype;
pInput->get_type(&bstrtype);
printf(_bstr_t(bstrtype));
if(StrCmpW(bstrtype,L"text")==0)
{
pInput->put_value(_bstr_t("fill it"));
printf("fill a field\n");
}
SysFreeString(bstrtype);
}
}

}
pColl->Release();
}
}

}
}

}
else
{
printf("Shell Windows interface is not avilable\n");
}
CoUninitialize();
return 0;
}
You are suggested to use a more meaningful caption.
http://www.csdn.net/expert/topic/570/570255.xml?temp=.8447229 提问的智慧
http://www.csdn.net/expert/topic/600/600260.xml?temp=.4702722 发贴的建议
masterz 2002-04-13
  • 打赏
  • 举报
回复
save the following in a html file, use IE to open it
<html>
<body>
a test input field<BR>
<input type=TEXT id=input1 name=input1>
</body>
</html>
masterz 2002-04-13
  • 打赏
  • 举报
回复
modify html page of IE via DHTML modal.
standout 2002-04-13
  • 打赏
  • 举报
回复
上面的老大,能解释一下上面程序的意思吗??
iearthshine 2002-04-12
  • 打赏
  • 举报
回复
IE窗口中的INPUT是没有句柄的。
duqiang2050 2002-04-12
  • 打赏
  • 举报
回复
转贴:
先获得窗口句柄; m_hProgram=FindWindow(NULL,"certan program ");
得到某一控件句柄; m_hEdit=CWnd::FromHandle(FindWindowEx(m_hProgram->GetSafeHwnd(),NULL,"EDIT",NULL));
wabc 2002-04-12
  • 打赏
  • 举报
回复
不明白,为什么要用程序往输入框里写,直接与服务器通信不就行了。
duqiang2050 2002-04-12
  • 打赏
  • 举报
回复
spy++能看到
qiuanhong 2002-04-12
  • 打赏
  • 举报
回复
UP
SeaFish 2002-04-12
  • 打赏
  • 举报
回复
gz
cjfwll 2002-04-12
  • 打赏
  • 举报
回复
你建一个类,基于HttpServer类,在类里设一个成员函数,处理你输入的
字符,再用消息映射
ON_PARSE_COMMAND
ON_PARSE_COMMAND_PARAMS
这个你自己去查msdn,里面说得很清楚
HttpServer就是专门处理网页与后台的通信。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧