澳门游艺场9159-9159金沙游戏场

此短信平台

作者: 澳门游艺场  发布:2019-09-30

图片 1

delphi断点无效,自动跳过代码
//定义

此短信平台,支持法国wavecom短信猫.有VB及DELPHI示例程序

type
PlayerInfo = record //客户端信息
ID: pchar;
GameHwnd: int64; //游戏句柄
ClientHwnd: int64; //dll的窗体句柄
Account: pchar; //账号
PassWord: pchar; //密码
RealmName_1: pchar; //服务器
RealmName_2: pchar;
playername:pchar;
Team:pchar;//队伍
Task:pchar;//功能
CmdCode:pchar;
Gamepath:pchar;
end;
pplayerinfo = ^playerinfo;

 

var
pplayer: PlayerInfo; {这个将会已指针的方式传递给线程, 它应该是全局的}
T_Event: Cardinal = 0; //事件内核

错误说明
0 成功
-1 连接短信平台失败
-2 命令执行失败
-3 无可读短信

function LoginGame(ptr: pointer): boolean; stdcall;
//登录游戏的线程
var

function ConnectToServer(aServerName, aLogID, aPass: pchar): integer; stdcall;
函数说明:
连接平台的后台数据库
参数说明:
aServerName 平台的后台数据库所在的服务器名称
aLogID 登陆数据库服务器所需的用户名
aPass 登陆数据库服务器所需的密码

i, c: Integer;
num: integer; //ID
hmodule: thandle;

function DisConnectToServer: integer; stdcall;
函数说明:
断开平台的后台数据库连接

installkeyProc: function(hwindow: hwnd): boolean;
gamehprocess, module: Cardinal;

function CreateIniDb: integer; stdcall;
函数说明:
初始化平台的后台数据库脚本

gameh, childhwnd, filehwnd: int64;
TextFile: TStringList;
filepath: string;
Curp: PlayerInfo; {因为指针参数给的点随时都在变, 需用线程的局部变量存起来}
//临时变量
ID: pchar;
GameHwnd: int64; //游戏句柄
ClientHwnd: int64; //dll的窗体句柄
Account: pchar; //账号
PassWord: pchar; //密码
RealmName_1: pchar; //服务器
RealmName_2: pchar;
playername:pchar;
Team:pchar;//队伍
Task:pchar;//功能
CmdCode:pchar;
Gamepath:pchar;
begin
EnterCriticalSection; //进入临界区
try
result := False;
Curp := pPlayerInfo^;

function SendASms(aPhone, aContent, aremark: pchar): integer; stdcall;
函数说明:
写短信到平台的后台数据库
参数说明:
aPhone 接收短信的人
aContent 短信的内容
aremark 备注

//这里开始往下断点无效,会自动跳过
ID:=Curp.ID; //这个createthread传递进来的结构体,参数多了,传递的值会出错
ClientHwnd:=Curp.ClientHwnd;
Account:=Curp.Account;
PassWord:=Curp.PassWord;
RealmName_1:=Curp.RealmName_1;
RealmName_2:=Curp.RealmName_2;
playername:=Curp.playername;
Team:=Curp.Team;
task:=Curp.Task;
//直到这里可以下断点,中间这一块全部跳过
cmdcode:=Curp.CmdCode;
Gamepath:=Curp.Gamepath;
SetEvent; //设置触发
filepath := Gamepath + 'dataconfig.ini';
if FileExists then
begin
//如果文件存在,则进行修改和添加
TextFile := TStringList.Create;
TextFile.LoadFromFile;
for I := 0 to TextFile.Count - 1 do
begin
if Pos('SaveAccount', TextFile[i]) > 0 then
begin
TextFile.Delete;
TextFile.Insert(i, 'SaveAccount = ' + '0');
end;
end;
TextFile.SaveToFile;
if TextFile <> nil then
begin
TextFile.Free;
TextFile := nil;
end;
end;
//参数一:进程路径
//参数二:命令行
//参数八:子进程工作路径
if createprocess(pchar(gamepath+'asktao.mod'),
pChar('des:'+CmdCode),
nil, nil, False,
0,
nil, gamepath, StartupInfo, ProcessInfo) then
begin
gameh := GetHwndFromProcess(ProcessInfo.dwProcessId);
for c := 0 to 60 do
begin
if gameh = 0 then
begin
Sleep;
gameh := GetHwndFromProcess(ProcessInfo.dwProcessId);
end
else
break;
end;
end;
if gameh > 0 then
begin
if KeyHook then
FormMain.Memo1.Lines.Add('dll安装成功');
//安装完成后,客户端窗体会创建一个DLL窗体,类名为Tform1
//遍历所有进程,跟进程ID相同,并且窗体类名为Tform1
//则代表dll窗体初始化成功,可以发送Data告诉他去登陆
for c := 0 to 30 do
begin
childhwnd := GetChildwindows(ProcessInfo.dwProcessId);
if childhwnd > 0 then
begin
Break;
end
else
Sleep;
end;
//成功创建窗口,可以开始发送数据,并让他开始自动登陆
//如果child窗口为0,则表示登陆失败,或者creatprocess开始是循环
//失败了重新再开一个窗口,记得关闭这个窗口

本文由澳门游艺场9159发布于澳门游艺场,转载请注明出处:此短信平台

关键词:

上一篇:没有了
下一篇:没有了