这几天想学下关于自动登陆的问题,就在网上找了一些资料研究了下,关于实现QQ自动登陆,有两种实现方法,
1.找到QQ登陆框的号码输入和密码输入框,然后向其填数据
2.直接启动QQ进程,通过向QQ进程传递命令行参数(包括QQ号,密码的加密值等)
第一种方法要用SPY++来找到QQ登陆框的各个窗口标题或ID号还没研究
参考网址:http://school.cfan.com.cn/pro/c/2006-08-23/1156272444d13844.shtml
我用的是第二种方法。
代码如下
1.登陆按钮点击事件 其中TextBox1.Text为用户输入的QQ号,TextBox2.Text为用户输入的密码
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
2 Dim qqurl As String = "D:\Program Files\QQ\qq.exe" 'qq执行文件的路径
3 '也可以使用读取注册表中QQ安装时的信息获取该路径
4 'QD1 = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ\", "Install", "nodir")
5 Process.Start(qqurl, "/START QQUIN:" + TextBox1.Text + " PWDHASH:" + HashBase64(TextBox2.Text) + " /STAT:" + "40")
6 End Sub
2.获取QQ密码加密后的值
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
Public Function HashBase64()Function HashBase64(ByVal Str As String) As String 'QQ密码加密 居然不可逆
2
Try
3
Dim result As Byte()
4
Dim md As New Security.Cryptography.MD5CryptoServiceProvider()
5
result = md.ComputeHash(System.Text.Encoding.UTF8.GetBytes(Str))
6
Dim TES As String = Convert.ToBase64String(result)
7
Return Convert.ToBase64String(result)
8
Catch
9
Return ""
10
End Try
11
End Function
3.关于怎么样获得QQ的命令行参数和如何知道QQ密码用何种方法加密还在摸索中 ,以后知道了再写,如果各位兄弟有谁知道也请告诉小弟一声