先建立个类QQInfo ,及添加引用---Com组件,SSOAxCtrlForPTLoginLib控件(装了QQ才会有)
Code
class QQInfo
{
public uint uin;
public string name;
public ushort face;
public string nick;
public byte gender;
public string key;
}
class QQInfo
{
public uint uin;
public string name;
public ushort face;
public string nick;
public byte gender;
public string key;
}
然后建立一个List,登陆了多少个QQ,List里面就会有多少个QQInfo,而key则是我们想要的。
例如我们建立 List<QQInfo> q_aUinList = new List<QQInfo>();
关键代码如下,此时List里面就是大家想要的东西了。
Code
public void GetQQinfoList(){
SSOForPTLoginClass AutoQQLogin = new SSOAxCtrlForPTLoginLib.SSOForPTLoginClass();
ITXSSOData AA = AutoQQLogin.CreateTXSSOData();
AutoQQLogin.InitSSOFPTCtrl(0, AA);
ITXSSOData g_vOptData = AutoQQLogin.CreateTXSSOData();
ITXSSOData Q =AutoQQLogin.DoOperation(1, g_vOptData);
ITXSSOArray N= Q.GetArray("PTALIST");
U = N.GetSize();
for (uint V = 0; V < U; V++)
{
ITXSSOData C = N.GetData(V);
uint S = C.GetDWord("dwSSO_Account_dwAccountUin");
ITXSSOArray G = C.GetArray("SSO_Account_AccountValueList");
string T = G.GetStr(0);
ushort L = 0;
try
{
L = C.GetWord("wSSO_Account_wFaceIndex");
}
catch
{
L = 0;
}
string M = "";
try
{
M = C.GetStr("strSSO_Account_strNickName");
}
catch
{
M = "";
}
byte J = 0;
try
{
J = C.GetByte("cSSO_Account_cGender");
}
catch
{
J = 0;
}
uint K = 0;
try
{
K = C.GetDWord("dwSSO_Account_dwUinFlag");
}
catch
{
K = 0;
}
ITXSSOBuffer D = C.GetBuf("bufGTKey_PTLOGIN");
ITXSSOBuffer E = C.GetBuf("bufST_PTLOGIN");
var I = "";
uint A = E.GetSize();
for (uint O = 0; O < A; O++)
{
string B =Convert.ToString( E.GetAt((uint)O),16).PadLeft (2,'0');
I += B;
}
QQInfo NewInfo = new QQInfo(); //将所获得的信息存入List
NewInfo.uin = S;
NewInfo.name = T;
NewInfo.face = L;
NewInfo.gender = J;
NewInfo.nick = M;
NewInfo.key = I;
q_aUinList.Add(NewInfo);
}
}
public void GetQQinfoList(){
SSOForPTLoginClass AutoQQLogin = new SSOAxCtrlForPTLoginLib.SSOForPTLoginClass();
ITXSSOData AA = AutoQQLogin.CreateTXSSOData();
AutoQQLogin.InitSSOFPTCtrl(0, AA);
ITXSSOData g_vOptData = AutoQQLogin.CreateTXSSOData();
ITXSSOData Q =AutoQQLogin.DoOperation(1, g_vOptData);
ITXSSOArray N= Q.GetArray("PTALIST");
U = N.GetSize();
for (uint V = 0; V < U; V++)
{
ITXSSOData C = N.GetData(V);
uint S = C.GetDWord("dwSSO_Account_dwAccountUin");
ITXSSOArray G = C.GetArray("SSO_Account_AccountValueList");
string T = G.GetStr(0);
ushort L = 0;
try
{
L = C.GetWord("wSSO_Account_wFaceIndex");
}
catch
{
L = 0;
}
string M = "";
try
{
M = C.GetStr("strSSO_Account_strNickName");
}
catch
{
M = "";
}
byte J = 0;
try
{
J = C.GetByte("cSSO_Account_cGender");
}
catch
{
J = 0;
}
uint K = 0;
try
{
K = C.GetDWord("dwSSO_Account_dwUinFlag");
}
catch
{
K = 0;
}
ITXSSOBuffer D = C.GetBuf("bufGTKey_PTLOGIN");
ITXSSOBuffer E = C.GetBuf("bufST_PTLOGIN");
var I = "";
uint A = E.GetSize();
for (uint O = 0; O < A; O++)
{
string B =Convert.ToString( E.GetAt((uint)O),16).PadLeft (2,'0');
I += B;
}
QQInfo NewInfo = new QQInfo(); //将所获得的信息存入List
NewInfo.uin = S;
NewInfo.name = T;
NewInfo.face = L;
NewInfo.gender = J;
NewInfo.nick = M;
NewInfo.key = I;
q_aUinList.Add(NewInfo);
}
}
至于clientkey如何构造Get发送,不在本贴讨论的范畴了,大家抓下包就会啦。