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中读取用户名和密码
我也遇到这个问题