ventilator什么意思:软件自动登陆的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 04:47:46
谁可以实现让软件自动填充用户名和密码??

忘高手加我的QQ:270036926

解决问题者,追加分~~~~~
是个软件..登陆截图地址是:http://www.94it.com.cn/denglu.BMP

打开的慢请等待几秒~~~~~~

用监视软件就可以了!
太容易的吧!

你的问题可以这样的解决:
因为不知道你对哪一种语言熟悉,所以我先给你一个vc的例子,希望你
可以弄明白,首先要明白对这种问题经常要用的几个函数。

1:CWnd::SendMessage函数,这个函数非常的重要,你一定要明白这个函数的
的三个参数的意思。你可以看看msdn帮助。
LRESULT SendMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0 );

2:CWnd::FindWindow函数
static CWnd* PASCAL FindWindow(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName );

3:BOOL EnumChildWindows(
HWND hWndParent,
WNDENUMPROC lpEnumFunc,
LPARAM lParam
);

4: FindWindowEx Function

HWND FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);

如果你非常快的弄明白这四个个函数的意思,那么你的这个问题就可以非常快速

的解决了。

下面我给出一个vc例子:我回忆是不是和我以前写的一个东西一样,写的也是

一个自动给别的进程填写代码的东西,所以。。。。

代码的功能实现了我的要求,你可以好好的看一看,如果你能明白就非常的好了,那么我们就

共同的进步了,如果不明白就给我发消息吧,我们一起学习

void CFinderDlg::OnButton1()
{
CWnd *m_wnd=CWnd::FindWindow(NULL,"登陆");
if (m_wnd!=NULL)
{
EnumChildWindows(m_wnd->m_hWnd,EnumChildWndProc, NULL);
}
}

BOOL CALLBACK CFinderDlg::EnumChildWndProc(HWND hwndChild, LPARAM lParam)
{
int num=0;
HWND m_Find[2];
if(::GetWindowLong(hwndChild,GWL_STYLE|WS_VISIBLE))
{
m_Find[num] = hwndChild;
num++;
}
CWnd m_wnd1;
m_wnd1.Attach(m_Find[0]);

m_wnd1.SendMessage(WM_SETTEXT,0,(LPARAM)"aaaaaa");
//这里的aaaaaaa就是你要填写的东西,比如”用户名“
m_wnd1.Detach();

return 1;

}

看不见啊,我用flash下也不成,算了,就是个登陆框吧。
我不知道是网络页面还是具体某个软件,分开说把
网络登陆:
如果你想简单点的话,下一个IeHttpHeader这个工具,在2k下用,这是用来监视http报文的东西,当你输入完毕之后,在http报文中应该出现post消息,把监视的那段稍分析一下就好了,然后用vc之类的东西,或者直接用winsock循环模拟就可以了。针对验证码的页面,那个要自己分析一下了,需要点计算机图形学的东西

普通软件登陆
楼上说的方法就好,不过你可能要用spyXX看看具体是怎么回事才行。之所以说用spyxx是因为不见得窗口名称一定是“登陆”,当然,如果你熟悉vc/api就当我没说吧。另外要加的是,你可能要继续枚举子窗体,象上面第二个函数定义那样,但是不要这么做,可以试着把枚举出来的东西的名称和类型输出出来,和spyxx对照一下,就好办了,到时候就可以用sendmessage了,不过偶觉得也可以用post,楼上的兄弟如果看到了可以交流一下用那个好^_^。

To 楼下的兄弟:
自己写的东西自动登陆当然没问题了,但是这个不是要用自己的程序来控制其他程序嘛,除非你改那个程序,不过忒困难了吧。
替楼上兄弟解释一下,aaaa是随便写的,表示要发送的字串,另外,就算密码在本地,也是经过加密的,QQ好像是MD5,就是你用山大那个碰撞算法也得好久好久........所以自动登陆,然后调整登陆计数器,穷举是个没办法的办法了。

上上层楼的说的似乎有道理
但是自动登陆,难道还需要开启别的进程来给它发送消息吗?
应该像qq里面设置的自动登陆的一样

其中"aaaaaaa"这个东西是从那里来的
m_wnd1.SendMessage(WM_SETTEXT,0,(LPARAM)"aaaaaa");

我觉得应该是设置自动登陆后,让软件从加密的用户配置文件user中读取用户名和密码

我也遇到这个问题