QQ帐号和密码都有了,如何用程序让QQ自动登陆?
解决方案 »
- 请大家帮我优化这几行代码,谢谢了.
- FTP上传问题!
- 想学习API编程不知道用时多少
- 再问“怎样获得MDI子窗口的叠放顺序”,特别请教Tiger_Zhao(VB老鸟)
- 受限类型的Windows账户下,Program Files下的程序文件夹如何写入一个文件?
- 能否这样使用DATAGRID控件呢?
- VB程序可以有返回值吗?
- 有谁可以帮我看看我的FTP客户端啊?有几个小问题怎么也想不出来了!我把我的源码发给你给我看看吧!
- 【问】如何由API直接载入图片?
- 如何减小安装包的大小?
- datagrid控件最大能显示多少条记录?msflexgird控件能最大显示多少条记录,记录集对象最大能支持多长条记录
- 关于sp运行商的接入代码怎么放在vb里的问题
2、用findwindow找到QQ的登陆窗口;
3、用getwindowrect获取登陆窗口的坐标;
4、用用mouse_event\keybd_event模拟你的点鼠标/敲键盘的动作即可;
至于如何设置mouse_event\keybd_event参数中的X、Y坐标,就利用3中获取的主窗口左上角的X、Y,再加上用户名和密码框距离窗口左上角的距离(这个具体一般是不会变化的)即可后的;
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Private Const WM_SETTEXT = &HC
Private Const BM_CLICK = &HF5
Dim filessPrivate Sub Command1_Click()
ShellExecute Me.hwnd, "open", filess, vbNullString, vbNullString, vbNormalFocus
Dim QQHwnd As Long, QHwnd As Long, PHwnd As Long, RHwnd As Long
Do While RHwnd = 0
QQHwnd = FindWindow("#32770", vbNullString)
QHwnd = FindWindowEx(QQHwnd, 0, "ComboBox", vbNullString)
PHwnd = FindWindowEx(QQHwnd, 0, "Edit", vbNullString)
RHwnd = FindWindowEx(QQHwnd, 0, "Button", "登陆")
DoEvents
Loop
SendMessage QHwnd, WM_SETTEXT, 0, ByVal Text1.Text 'text1内为QQ号码.
SendMessage PHwnd, WM_SETTEXT, 0, ByVal Text2.Text 'Text2内为密码.
SendMessage RHwnd, BM_CLICK, 0, 0 '点击登录按钮
End
End Sub
曾经试过mouse_event\keybd_event,登陆失败(可能我做错了?)呵呵,找结果!