{/////////////////////////////////////////////////////////////////////////////
// 声明
//本代码不针对任何团体和个人,只为
学习\交流\促进游戏的发展而发布
//如有略害到你及团体的合法利害,请告知本人,本人看到消息后24小时内删除
//
//本代码开源使用,请使用者自觉遵守开
源代码原则. 出于大家利益考虑,
//本代码不得作商业用途,如有违反大家将同力攻击其服务器,打出中国力量
//
//
// 作者:刀笑浪人 honyet
// E-Mail:hong9906@163
// 网站:honyet
//
//
//由于本人工作烦忙,代码存在相当的BUG,请大家谅解,如有更新,请给我一份,十分感谢
//
//
// 本代码本人只发于本人网站及本人博客
// honyet hi.baidu/honyet
// 其它网站一律非本人发布
//
/////////////////////////////////////////////////////////////////////////////
//已知BUG
//Preprocess 函数 所得出的密码有些错误,比如:QQ密码为16位,有各种字符的,就可能登录失败
// 可能是
Delphi MD5算法的原因,我用VC2005来试过,没有错误.由于
工作太忙
// 没有时间细细检查,还在麻烦大家试试
}
unit WebQQFunction;
interface
uses
Windows, SysUtils, Classes, StdCtrls, IdBaseComponent, IdComponent, StrUtils, ExtCtrls,
IdTCPConnection, IdTCPClient, IdHTTP, jpeg, IdAuthentication, IdHash, IdHashMessageDigest,
PublicFunctions, IniFiles, Forms, ComCtrls, SHDocVw, Dialogs, Variants, DateUtils;
const
//QQ校友农场
C;
//QQ空间农场
C;
//登录用的字符串
C;
C+
'login&;fp=&;h=1&;ptredirect=1&;ptlang=0&;from_ui=1&;dumy=1';
//操作农场时,IdHTTP Referer 的值 通过GetFlaseVersion得到 IdHTTP Referer的全部字串
C;
//FarmKey的形式
C;
//读取好友列表
C;
//自己ID,名字,时间,对方名称,farmKey
C;
//Cookie的组成
C;
//升一级加多少经验
CONST_OneLevelNum = 200;
//取FarmKey时,时间延后多少秒
Const_DelayFarmTime = 10;
type
//背包类型 0仓库 1商店 2包裹
TBagsType = (farm_Warehouse, farm_Goods, farm_Bag);
//动作类型 0偷取 1杀虫 2浇水 3除草 4收获
// 5松土 6种植 7全部卖出 8购买种子
// 9查看消息 10所有动作(在PostAction中没有实现义意,不作操作)
TActionType =(Action_scrounge, Action_spraying, Action_water, Action_clearWeed,
Action_harvest, Action_scarify, Action_planting, Action_Sale, Action_SaleAll,
Action_Buy, Action_getAllInfo, Action_ALL_OPP);
var
QQ_Cookie, VerifySession, farmKey, ConnHost,
Cookie_pt2gguin, Cookie_uin, Cookie_skey, Cookie_ptcz,
Cookie_pvid, Cookie_name, Fl
aseVersion: string;
farmTime, Cookie_pst: int64;
//服务器时间 本地时间 本地时间与服务器的时间差
QQ_ServerTime, Loc_ServerTime, DelayedDpikeInt : integer;
//将本地时间转成QQ服务器时间
function DateTimeToServerTime(aDateTime: TDateTime): integer;
function Preprocess(aPassWord, aVerifyCode:string):string;
//取得Flash版本 通过GetFlaseVersion得到 IdHTTP Referer的全部字串
procedure GetFlaseVersion(var aStr: string);
//取得验证码
function GetVerifyPic(aIdHTTP:TIdHTTP; var aImage: TImage): boolean;
//将汉字转换为unicode码
function AnsiToUnicode(aSubWideChar: PWideChar):string;
//将unicode码转换为汉字
function UnicodeToAnsi(aSubUnicode: string):string;
//提取字符串
function SubString(aInputStr, aStr_L, aStr_R:string):string;
function HashStr2BinStr(Hash: string):string;
function Fmd5(str: string):string;
//以Web形式登录QQ
function LoginQQ(aIdHTTP: TIdHTTP; aUserNameStr, aPass
wordStr, aVerifyStr: string; var aWebStr: string): Boolean;
//登录QQ校友社区
func