http://www.carrefourstation.com

新蒲京娱乐场无需付费短信平台函数表明

function CreateIniDb: integer; stdcall;
函数表达:
先河化平台的后台数据库脚本

end;

{=================================================================
  功  能: 检验机器是还是不是登陆网络
  参  数: 无
  返回值: 成功:  true  失败:  false
  备 注:
  版 本:
     1.0  2002/10/03 09:55:00
=================================================================}
function checkmacattachnet: boolean;
begin
  result := false;
  if getsystemmetrics(sm_network) <> 0 then
    result := true;
end;

function ReadASms(var aPhone, aContent, aSendDateTime: pchar): integer; stdcall;
函数表达:
从阳台的后台数据库中读取一条未读短信
参数表达:
aPhone 发送短信的人
aContent 短信的原委
aSendDateTime 短信发送的日子

except
result := false;
ExitThread;
end;

八、listen函数
int listen( SOCKET s, int backlog );
服务程序能够调用listen函数使其流套接字s处于监听状态。处于监听状态的流套接字s将维护二个顾客连接诉求队列,该队列最多容纳backlog个客商连接央求。要是该函数实施成功,则重回0;假若进行停业,则赶回SOCKET_ERROR。

此短信平台,扶助法兰西共和国wavecom短信猫.有VB及DELPHI示例程序

end;result := True;Isloading := false;LeaveCriticalSection; //离开临界区ExitThread;

  if address = inaddr_none then
  begin
     result:=false;
  end;
  // get some data buffer space and put something in the packet to send
  buffersize := sizeof(ticmpechoreply) + size;
  getmem(preqdata, size);
  getmem(pdata, size);
  getmem(pipe, buffersize);
  fillchar(preqdata^, size, $aa);
  pipe^.data := pdata;

错误表明
0 成功
-1 连接短信平台停业
-2 命令试行停业
-3 无可读短信

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

{=================================================================
  功  能:  检查实验互连网状态
  参  数:
          ipaddr: 被测量检验互联网上主机的ip地址或名称,建议选择ip
  返回值: 成功:  true  失败: false;
  备 注:
  版 本:
     1.0  2002/10/03 09:40:00
=================================================================}
function checknet(ipaddr: string): boolean;
type
  pipoptioninformation = ^tipoptioninformation;
  tipoptioninformation = packed record
     ttl:         byte;      // time to live (used for traceroute)
     tos:         byte;      // type of service (usually 0)
     flags:       byte;      // ip header flags (usually 0)
     optionssize: byte;      // size of options data (usually 0, max 40)
     optionsdata: pchar;     // options data buffer
  end;

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

var
pplayer: PlayerInfo; {那个将会已指针的不二等秘书诀传递给线程, 它应该是大局的}
T_伊芙nt: Cardinal = 0; //事件内核

改正计算机在网络中的名字,重新开动后才生效
SetComputerName('Hello World');

function GetSmsParams(var SendSmsCnt, HaveNotSendCnt, ReciveSmsCnt,
HaveNotReadSmsCnt: integer): integer; stdcall;
函数表明:
获得平台的连锁参数
参数表明:
SendSmsCnt 发件箱的总短信数
HaveNotSendCnt 未发的短信数量
ReciveSmsCnt 收件箱中已吸取短信的数量
HaveNotReadSmsCnt 未读短信的数额

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

阅览文件是或不是存在
 FileExists(FileName:String):Boolean;

function SendASms(aPhone, aContent, aremark: pchar): integer; stdcall;
函数表达:
写短信到平台的后台数据库
参数表明:
aPhone 选用短信的人
aContent 短信的剧情
aremark 备注

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

{=================================================================
  功  能: 再次来到网络中的分享财富
  参  数:
          ipaddr: 机器ip
          list: 必要填写的list
  返回值: 成功:  true,并填充list 失败: false;
  备 注:
     wnetopenenum function starts an enumeration of network
     resources or existing connections.
     wnetenumresource function continues a network-resource
     enumeration started by the wnetopenenum function.
  版 本:
     1.0  2002/10/03 07:30:00
=================================================================}
function getuserresource(ipaddr: string; var list: tstringlist): boolean;
type
  tnetresourcearray = ^tnetresource;//网络类型的数组
var
  i: integer;
  buf: pointer;
  temp: tnetresourcearray;
  lphenum: thandle;
  netresource: tnetresource;
  count,bufsize,res: dword;
begin
  result := false;
  list.clear;
  if copy(ipaddr,0,2) <> '\' then
    ipaddr := '\'+ipaddr;   //填充ip地址消息
  fillchar(netresource, sizeof(netresource), 0);//开始化互联网档案的次序音信
  netresource.lpremotename := @ipaddr[1];//钦点计算机名称
  //获取钦赐Computer的网络能源句柄
  res := wnetopenenum( resource_globalnet, resourcetype_any,
                      resourceusage_connectable, @netresource,lphenum);
  if res <> no_error then exit;//试行倒闭
  while true do//列举内定工作组的网络财富
  begin
    count := $ffffffff;//不限财富数量
    bufsize := 8192;//缓冲区大小设置为8k
    getmem(buf, bufsize);//申请内部存款和储蓄器,用于获取职业组消息
    //获取钦点Computer的网络财富名称
    res := wnetenumresource(lphenum, count, pointer(buf), bufsize);
    if res = error_no_more_items then break;//能源列举完毕
    if (res <> no_error) then exit;//试行停业
    temp := tnetresourcearray(buf);
    for i := 0 to count - 1 do
    begin
       //获取钦赐Computer中的分享财富名称,+2表示删除"\",
       //如\192.168.0.1 => 192.168.0.1
       list.add(temp^.lpremotename + 2);
       inc(temp);
    end;
  end;
  res := wnetcloseenum(lphenum);//关闭一次列举
  if res <> no_error then exit;//推行倒闭
  result := true;
  freemem(buf);
end;

function ConnectToServer(aServerName, aLogID, aPass: pchar): integer; stdcall;
函数表明:
连续几天平台的后台数据库
参数表明:
aServerName 平台的后台数据库所在的服务器名称
aLogID 登入数据库服务器所需的客商名
aPass 登录数据库服务器所需的密码

不知底怎么,logingame线程,传递的自定义结构体参数过多,会传递不科学,何况内部有注释之处会断点无效,运转起来会活动跳过这段代码,求大神解救,谢谢。。

  // free those buffers
  freemem(pipe); freemem(pdata); freemem(preqdata);

 

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;

二、WSACleanup函数
int WSACleanup (void);
应用程序在形成对央浼的Socket库的行使后,要调用WSACleanup函数来肃清与Socket库的绑定并且释放Socket库所占用的系统财富。

 

end;

取得文件的扩大名
 ExtractFileExt(FileName:String):String;

新蒲京娱乐场 1

procedure TFormMain.Button1Click(Sender: TObject);
var
i: integer;
num: integer;
UserIni: TIniFile;
list: tstringlist;
filepath: string;
sr: TSearchRec;
Section, Key: string; { 分别代表 ini 文件的小节与重大字 }
begin
filepath := ExtractFilePath(Application.ExeName);
filepath := filepath + '区组新闻.ini';
if not fileExists then
begin
MessageBox(Handle, '服务器列表文件丢失', '错误消息', 0);
Exit;
end;
for i := 0 to FormMain.listview1.Items.Count - 1 do
begin
if FormMain.ListView1.Items[i].Checked = True then
begin
num := StrToInt(FormMain.ListView1.Items[i].Caption);
pplayer.ID := pchar(inttostr;
pplayer.GameHwnd := 0;
pplayer.ClientHwnd := self.Handle;
pplayer.Account := pchar(FormMain.ListView1.Items[i].SubItems[0]);
pplayer.PassWord := pchar(FormMain.ListView1.Items[i].SubItems[1]);
pplayer.RealmName_1 := pchar(FormMain.ListView1.Items[i].SubItems[2]);
pplayer.RealmName_2 := pchar(FormMain.ListView1.Items[i].SubItems[3]);
pplayer.playername := pchar(FormMain.ListView1.Items[i].SubItems[4]);
pplayer.Team:= pchar(FormMain.ListView1.Items[i].SubItems[5]);
pplayer.task:= pchar(FormMain.ListView1.Items[i].SubItems[9]);
pplayer.Gamepath:=pchar(formmain.Edit游戏路线.text);
//依据服务器列表设置
UserIni := TIniFile.Create;
// 决断文件大小
if FindFirst(filepath, faAnyFile, sr) = 0 then
begin
if sr.size > 0 then
begin
// 如果文件不为空
section:='DES';
key:=pplayer.RealmName_1;
pplayer.CmdCode:=pchar(userini.ReadString(section,key,''));

回去程序推行参数
  有关 Delphi 传入应用软件的命令列参数, 请参谋以下的证实:
用ParamCount函数获得命令参数的个数:
呼叫 ParamStr(0), 传回推行档的档名(含路线)
呼唤 ParamStr(n), 传回第n个参数的剧情
procedure TForm1.FormCreate(Sender: TObject);
var
sFileName: string;
begin
if ParamCount > 0 then begin (* 有推行参数字传送入 *)
sFileName := ParamStr(1); (* 获得参数内容 *)
if FileExists(sFileName) then
Memo1.Lines.LoadFromFile(sFileName)
else
Application.MessageBox('找不到钦赐的档案', '新闻', 48);
end;
end;

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

七、bind函数
int bind(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
当 创造了二个Socket未来,套接字数据结构中有三个暗许的IP地址和默许的端口号。八个服务程序必得调用bind函数来给其绑定一个IP地址和三个特定 的端口号。顾客程序平日不要调用bind函数来为其Socket绑定IP地址和断口号。该函数的第一个参数钦命待绑定的Socket描述符;第叁个参数钦点叁个sockaddr结构,该协会是那般定义的:
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
sa_family钦定地址族,对于TCP/IP公约族的套接字,给其置AF_INET。当对TCP/IP左券族的套接字进行绑准期,我们日常采纳另一个地点结构:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
其 中sin_family置AF_INET;sin_port指明端口号;sin_addr结构体中唯有八个唯生机勃勃的字段s_addr,表示IP地址,该字段 是三个大背头,日常用函数inet_addr(卡塔 尔(英语:State of Qatar)把字符串情势的IP地址转变来unsigned long型的整数值后再置给s_addr。有的服务器是多宿主机,至稀有四个网卡,那么运营在此么的服务器上的服务程序在为其Socket绑定IP地址时 可以把htonl(INADDTucson_ANY)置给s_addr,那样做的功利是随意哪个网段上的客商程序都能与该服务程序通讯;要是只给运营在多宿主机上的 服务程序的Socket绑定二个定位的IP地址,那么就独有与该IP地址处于同一个网段上的客商程序本领与该服务程序通讯。我们用0来填充 sin_zero数组,目的是让sockaddr_in结构的轻重与sockaddr结构的高低相同。上面是二个bind函数调用的例证:
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8888);
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(ListenSocket,(struct sockaddr *)&saddr,sizeof(saddr));

 end else begin MessageBox(Handle, '服务器列表文件丢失', '错误信息', 0); FindClose; if UserIni <> nil then begin UserIni.Free; UserIni := nil; end; Exit; end; end; //关闭由FindFirstFile函数创建的一个搜索句柄 FindClose; if UserIni <> nil then begin UserIni.Free; UserIni := nil; end; hthread := createthread(nil, 0, @LoginGame, @pplayer, 0, threadid); if WaitForSingleObject(T_Event, INFINITE) = WAIT_OBJECT_0 then ResetEvent; //设置为未触发 CloseHandle; end;end;

关闭Windows
支配WINDOWS的按钮:如关闭WINDOWS,重新开动WINDOWS等, ExitWindowsEx(UINT uFlags,DWOENVISIOND dwReserved);是贯彻这一职能的API函数
率先定义常数
const
EWX_FORCE=4; file://关闭全数程序并以其他顾客身份登陆
EWX_LOGOFF=0; file://重新起动Computer并切换来MS-DOS格局
EWX_REBOOT=2; file://重新起动计算机
EWX_SHUTDOWN=1;//关闭计算机
运维时给How赋值,让他万分EWX_SHUTDOWN或其余,调用以下语句
ExitWindowsEx(How,0);

gameh, childhwnd, filehwnd: int64;
TextFile: TStringList;
filepath: string;
Curp: PlayerInfo; {因为指针参数给的点每七十23日都在变, 需用线程的局地变量存起来}
//有的时候变量
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^;

{=================================================================
  功  能: 重返本机的局域网ip地址
  参  数: 无
  返回值: 成功:  true, 并填充localip   失败:  false
  备 注:
  版 本:
     1.0  2002/10/02 21:05:00
=================================================================}
function getlocalip(var localip: string): boolean;
var
    hostent: phostent;
    ip: string;
    addr: pchar;
    buffer: array [0..63] of char;
    ginitdata: twsadata;
begin
  result := false;
  try
    wsastartup(2, ginitdata);
    gethostname(buffer, sizeof(buffer));
    hostent := gethostbyname(buffer);
    if hostent = nil then exit;
    addr := hostent^.h_addr_list^;
    ip := format('%d.%d.%d.%d', [byte(addr [0]),
          byte (addr [1]), byte (addr [2]), byte (addr [3])]);
    localip := ip;
    result := true;
  finally
    wsacleanup;
  end;
end;

//这里带头往下断点无效,会自行跳过
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;
Set伊夫nt; //设置触发
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领头是循环
//战败了重复再开三个窗口,记得关闭那些窗口

关闭外界应用程序
怎样在 Delphi 应用程序中, 去关闭外界已张开的应用程序?
下边给出风流洒脱段在 Delphi 中关闭"总计器"程序为例:
var
HWndCalculator : HWnd;
begin
// find the exist calculator window
HWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist Calculator
if HWndCalculator <> 0 then
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
end;

//十进制调换为二进制字符串  [重写:Jey]
function inttoBin(i: integer): string;
begin
 while i <>0 do
 begin              //i mod 2取模,再使用format格式化
   result:=Format('%d'+result,[i mod 2]);
   i:=i div 2
 end
end;
//二进制(S)-->>十进制(D)    [重写:Jey]
uses Math;
function hextoint(s: string): Double;
begin
  while Length(s) <>0 do
  begin              //2^(长度-1)次方
    if s[1]='1' then  Result:=Result+power(2,Length(s)-1);
    s:=Copy(s,2,Length(s));
  end
end;
//十进制(I)-->>十八进制(S)
//D自带函数,Digits长度,日常设4.
function IntToHex(Value: Integer; Digits: Integer): string;

interface
const
  c_err_getlocalip       = '获取本地ip失利';
  c_err_getnamebyipaddr  = '获取主机名败北';
  c_err_getsqlserverlist = '获取sqlserver服务器失败';
  c_err_getuserresource  = '获取分享资败北';
  c_err_getgrouplist     = '获取具备工作组败北';
  c_err_getgroupusers    = '获取职业组中具有Computer失利';
  c_err_getnetlist       = '获取具有互连网项目退步';
  c_err_checknet         = '互连网不通';
  c_err_checkattachnet   = '未登录互联网';
  c_err_internetconnected ='未有上网';
 
  c_txt_checknetsuccess  = '网络畅通';
  c_txt_checkattachnetsuccess = '已登陆互连网';
  c_txt_internetconnected ='上网了';

{=================================================================
  功  能: 重返网络中sqlserver列表
  参  数:
          list: 供给填写的list
  返回值: 成功:  true,并填充list  失败 false
  备 注:
  版 本:
    1.0  2002/10/02 22:44:00
=================================================================}
function getsqlserverlist(var list: tstringlist): boolean;
var
   i: integer;
   sretvalue: string;
   sqlserver: variant;
   serverlist: variant;
begin
  result := false;
  list.clear;
  try
    sqlserver := createoleobject('sqldmo.application');
    serverlist := sqlserver.listavailablesqlservers;
    for i := 1 to serverlist.count do
      list.add (serverlist.item(i));
    result := true;
  finally
    sqlserver := null;
    serverlist := null;
  end;
end;

次第不出以后职务栏
  平日Windows 95运路程序时都会在职分栏上边世按键,要是您的顺序是一个蹲点程序,那么现身开关就不是明智之举了。要兑现该成效将要要OnCreate事件里选取到API函数SetWindowLong
procedure TForm1.FormCreate(sender:TObject);
begin
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

哪些获得Windows的有时文件目录?
相符版本:Delphi 3,2.0,1.0

  //判定ip左券有未有安装   那么些函数失常
  function isipinstalled : boolean;
  //检查评定机器是还是不是上网
  function internetconnected: boolean;
implementation

暂且路线
神迹要求Windows的有的时候路线来做备份等工作,那么就要了然路线在哪,上面包车型地铁次序帮你忙:
var aa:pchar;
begin
GetTempPath(20,aa); file://重回路线名
edit1.text:=aa;
end;

郑重声明:本文版权归澳门新莆京手机网站所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。