金沙糖果派对网站app 1

金沙糖果派对网站app 1

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

//十六进制(S)–>>十进制(I)  [重写:Jey]
function hextoint(s: string): Integer; 
begin           //$代表16进制
  Result:=StrToInt(‘$’+s);
end;

此短信平台,扶助法国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;

//十进制转换为二进制字符串  [重写: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;

 

var
pplayer: PlayerInfo; {那些将会已指针的措施传递给线程, 它应当是大局的}
T_伊夫nt: Cardinal = 0; //事件内核

//数据(S)–>>二进制(S)
//任何数据都是以二进制情势储存的! (转)
function conertde(s:string):string;
var
 i:integer;
begin
 for i:=1 to length(s) do
   result:=result+inttohex(ord(s[i]),2);
end; 

荒唐表明
0 成功
-1 连接短信平台倒闭
-2 命令实践倒闭
-3 无可读短信

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

一、WSAStartup函数
int WSAStartup(
WORD wVersionRequested,
LPWSADATA lpWSAData
);
使
用Socket的先后在行使Socket在此以前务必调用WSAStartup函数。该函数的第二个参数指明程序央求使用的Socket版本,个中高位字节指
明副版本、低位字节指明主版本;操作系统利用第1个参数重临诉求的Socket的版本消息。当三个应用程序调用WSAStartup函数时,操作系统依照须要的Socket版本来搜索相应的Socket库,然后绑定找到的Socket库到该应用程序中。将来应用程序就足以调用所需要的Socket库中的另外Socket函数了。该函数试行成功后重临0。
例:假使一个顺序要接纳2.1本子的Socket,那么程序代码如下
wVersionRequested = MAKEWORD( 2, 1 );
err = WSAStartup( wVersionRequested, &wsaData );

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

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

二、WSACleanup函数
int WSACleanup (void);
应用程序在成功对央浼的Socket库的应用后,要调用WSACleanup函数来扫除与Socket库的绑定何况释放Socket库所占用的系统能源。

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

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

三、socket函数
SOCKET socket(
int af,
int type,
int protocol
);

用程序调用socket函数来创立二个能够举行网络通讯的套接字。第叁个参数钦定应用程序使用的通讯协议的协议族,对于TCP/IP协议族,该参数置
PF_INET;第贰个参数钦定要创设的套接字类型,流套接字类型为SOCK_STREAM、数据报套接字类型为SOCK_DGRAM;第1个参数内定应
用程序所采纳的通讯协议。该函数假如调用成功就赶回新创立的套接字的描述符,如若战败就回到INVALID_SOCKET。套接字描述符是三个整数品种的
值。种种进程的进程空间里都有三个套接字描述符表,该表中寄放着套接字描述符和套接字数据结构的附和关系。该表中有五个字段贮存新创造的套接字的描述符,
另三个字段贮存套接字数据结构的地方,由此依赖套接字描述符就足以找到其对应的套接字数据结构。每种进度在本人的进度空间里都有贰个套接字描述符表可是套
接字数据结构都是在操作系统的水源缓冲里。下边是一个创立流套接字的例证:
struct protoent *ppe;
ppe=getprotobyname(“tcp”);
SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);

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^;

四、closesocket函数
int closesocket(
SOCKET s
);
closesocket
函数用来关闭三个叙述符为s套接字。由于各样进度中都有一个套接字描述符表,表中的各样套接字描述符都对应了八个坐落操作系统缓冲区中的套接字数据结构,
由此有希望有多少个套接字描述符指向同三个套接字数据结构。套接字数据结构中刻意有一个字段贮存该组织的被引述次数,即有多少个套接字描述符指向该组织。当
调用closesocket函数时,操作系统先检查套接字数据结构中的该字段的值,假诺为1,就标记唯有多个套接字描述符指向它,由此操作系统就先把s在
套接字描述符表中对应的那条表项清除,并且释放s对应的套接字数据结构;假若该字段大于1,那么操作系统仅仅清除s在套接字描述符表中的对应表项,况兼把
s对应的套接字数据结构的引用次数减1。
closesocket函数若是实践成功就再次来到0,否则再次来到SOCKET_ERROR。

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;
Set伊夫nt; //设置触发
filepath := Gamepath + ‘\data\config.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初始是循环
//退步了再度再开一个窗口,记得关闭那一个窗口

五、send函数
int send(
SOCKET s,
const char FAR *buf,
int len,
int flags
);

论是客户如故服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送央浼,而服务器则一般用send函
数来向客户程序发送应答。该函数的第一个参数钦赐发送端套接字描述符;第一个参数指爱他美个贮存应用程序要发送数据的缓冲区;第多少个参数指明实际要发送的数
据的字节数;第八个参数一般置0。这里只描述同步Socket的send函数的施行流程。当调用该函数时,send先比较待发送数据的长短len和套接字
s的发送缓冲区的长短,即便len大于s的发送缓冲区的长度,该函数重临SOCKET_EPAJEROROEscort;若是len小于或许等于s的发送缓冲区的长度,那么
send先检查协议是或不是正在发送s的出殡和埋葬缓冲中的数据,假若是就等候协议把数据发送完,倘若协商还不曾初始发送s的出殡缓冲中的数据照旧s的出殡缓冲中非常少,那么send就相比较s的发送缓冲区的盈余空间和len,假使len大于剩余空间大小send就直接等候协议把s的出殡缓冲中的数据发送完,如果len小于剩余空间大小send就一味把buf中的数据copy到剩余空间里(注意实际不是send把s的出殡缓冲中的数据传到连接的另一端的,而是协议传
的,send仅仅是把buf中的数据copy到s的发送缓冲区的盈余空间里)。若是send函数copy数据成功,就回去实际copy的字节数,假诺send在copy数据时现身谬误,那么send就回到SOCKET_E兰德酷路泽ROR;倘诺send在等候协议传送数据时网络断开的话,那么send函数也重回SOCKET_ERAV4RO逍客。要注意send函数把buf中的数据成功copy到s的发送缓冲的剩余空间里后它就回去了,然而此时这几个数量并不一定立即被
传到一连的另一端。假使协商在继续的传递进程中冒出网络错误的话,那么下一个Socket函数就能回去SOCKET_ERAV4ROOdyssey。(每一个除send外的
Socket函数在实行的最开首总要先等待套接字的出殡缓冲中的数据被协议传送完结才具接二连三,要是在等候时出现网络错误,那么该Socket函数就赶回
SOCKET_ERROR)
在意:在Unix系统下,借使send在伺机协议传送数据时互联网断开的话,调用send的长河会吸取到叁个SIGPIPE确定性信号,进度对该能量信号的暗许管理是经过终止。

function ReadASms(var aPhone, aContent, aSendDateTime: pchar): integer;
stdcall;
函数表明:
从平台的后台数据库中读取一条未读短信
参数表达:
aPhone 发送短信的人
aContent 短信的剧情
aSendDateTime 短信发送的时辰

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

六、recv函数
int recv(
SOCKET s,
char FAR *buf,
int len,
int flags
);

论是客户照旧服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的率先个参数内定接收端套接字描述符;第二个参数指美赞臣(Karicare)(Aptamil)个缓冲区,该缓
冲区用来存放recv函数接收到的数码;第三个参数指明buf的尺寸;第多个参数一般置0。这里只描述同步Socket的recv函数的进行流程。当使用
程序调用recv函数时,recv先等待s的出殡缓冲中的数据被协议传送完结,假诺协商在传送s的发送缓冲中的数据时出现网络错误,那么recv函数再次来到SOCKET_ELANDROTucson,借使s的出殡缓冲中并未有数量依然数额被协议成功发送实现后,recv先检查套接字s的接收缓冲区,假诺s接收缓冲区中平昔不数据
也许协议正在接收数据,那么recv就直接等候,只到协商把数量接收实现。当协议把多少接受完成,recv函数就把s的选取缓冲中的数据copy到buf
中(注意协议接收到的数码只怕大于buf的长度,所以在这种意况下要调用五回recv函数本事把s的收到缓冲中的数据copy完。recv函数仅仅是
copy数据,真正的接收数据是协商来达成的),recv函数再次回到其实际copy的字节数。若是recv在copy时出错,那么它回到
SOCKET_E纳瓦拉RO福特Explorer;假使recv函数在等候协议接收数据时网络中断了,那么它再次来到0。
瞩目:在Unix系统下,要是recv函数在等候协议接收数据时互连网断开了,那么调用recv的历程会接到到一个SIGPIPE能量信号,进度对该能量信号的暗许管理是进度终止。

function GetSmsParams(var SendSmsCnt, HaveNotSendCnt, ReciveSmsCnt,
HaveNotReadSmsCnt: integer): integer; stdcall;
函数表明:
猎取平台的连带参数
参数表达:
SendSmsCnt 发件箱的总短信数
HaveNotSendCnt 未发的短信数量
ReciveSmsCnt 收件箱中已吸收接纳短信的数额
HaveNotReadSmsCnt 未读短信的多寡

except
result := false;
ExitThread;
end;

七、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()把字符串方式的IP地址转变来unsigned
long型的整数值后再置给s_addr。有的服务器是多宿主机,至少有多个网卡,那么运行在这么的服务器上的服务程序在为其Socket绑定IP地址时
能够把htonl(INADDKuga_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;

八、listen函数
int listen( SOCKET s, int backlog );
服务程序能够调用listen函数使其流套接字s处于监听状态。处于监听状态的流套接字s将拥戴三个客户连接须要队列,该队列最多容纳backlog个客户连接须要。若是该函数施行成功,则再次回到0;借使执行破产,则赶回SOCKET_ERROR。

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,”));

九、accept函数
SOCKET accept(
SOCKET s,
struct sockaddr FAR *addr,
int FAR *addrlen
);

务程序调用accept函数从处于监听状态的流套接字s的客户连接央求队列中收取排在最前的二个客户央浼,並且创办三个新的套接字来与客户套接字成立连接
通道,借使延续成功,就回去新创设的套接字的描述符,未来与客户套接字调换数据的是新成立的套接字;若是失利就赶回INVALID_SOCKET。该函数
的率先个参数指定处于监听状态的流套接字;操作系统利用第二个参数来回到连接客户的地方结构;操作系统利用第三个参数来回到地址结构addr的尺寸。上边是一个调用accept的例证:
struct sockaddr_in ServerSocketAddr;
int addrlen;
addrlen=sizeof(ServerSocketAddr);
ServerSocket=accept(ListenSocket,(struct sockaddr
*)&ServerSocketAddr,&addrlen);

 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;

十、connect函数
金沙糖果派对网站app,int connect(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
客户程序调用connect函数来使客户Socket
s与监听于name所内定的微机的一定端口上的服务Socket实行连接。若是总是成功,connect重回0;假使失利则赶回SOCKET_ELacrosseROPAJERO。上面是二个事例:
struct sockaddr_in daddr;
memset((void *)&daddr,0,sizeof(daddr));
daddr.sin_family=AF_INET;
daddr.sin_port=htons(8888);
daddr.sin_addr.s_addr=inet_addr(“133.197.22.4”);
connect(ClientSocket,(struct sockaddr *)&daddr,sizeof(daddr));

end;

MessageBox对话框是比较常用的三个新闻对话框,其不但能够定义呈现的音讯内容、新闻提醒Logo,并且能够定义按钮组合及对话框的标题,是一个功效齐全的新闻对话框消息提醒Logo,何况能够定义按键组合及对话框的标题,是三个作用齐全的新闻对框。
 1、函数原型及参数
 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word):
Integer;
 hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可采取窗体的Handle属性,不然可用0,使其平素作为桌面窗口的子窗口。
 Text:欲呈现的新闻字符串。
 Caption:对话框题目字符串。
 Type:对话框类型常量。
 该函数的重回值为整数,用于对话框按键的甄别。
 2、类型常量
 对话框的类别常量可由按键组合、缺省开关、展现Logo、运转形式三种常量组合而成。
 (1)开关组合常量
 MB_OK = $00000000;         //四个分明按键
 MB_OKCANCEL = $00000001;      //贰个规定开关,一个收回按键
 MB_ABORTRETRAV4YIGNORE =
$00000002;  //三个老大终止按键,叁个重试开关,四个概略开关
 MB_YESNOCANCEL = $00000003;    
//三个是开关,贰个否按键,一个裁撤开关
 MB_YESNO = $00000004;        //三个是按键,三个否开关
 MB_RETRubiconYCANCEL = $00000005;     //叁个重试按键,二个裁撤按键
 (2)缺省开关常量
 MB_DEFBUTTON1 = $00000000;     //第三个按键为缺省按键
 MB_DEFBUTTON2 = $00000100;     //第4个开关为缺省开关
 MB_DEFBUTTON3 = $00000200;     //首个开关为缺省开关
 MB_DEFBUTTON4 = $00000300;     //首个按键为缺省按键
 (3)Logo常量
 MB_ICONHAND = $00000010;        //“×”号图标
 MB_ICONQUESTION = $00000020;      //“?”号图标
 MB_ICONEXCLAMATION = $00000030;    //“!”号图标
 MB_ICONASTERISK = $00000040;      //“i”图标
 MB_USE冠道ICON = $00000080;        //用户Logo
 MB_ICONWARNING = MB_ICONEXCLAMATION;  //“!”号图标
 MB_ICONERROR = MB_ICONHAND;      //“×”号图标
 MB_ICONINFORMATION = MB_ICONASTERISK; //“i”图标
 MB_ICONSTOP = MB_ICONHAND;       //“×”号图标
 (4)运转情势常量
 MB_应用程式LMODAL =
$00000000;    //应用程序格局,在未竣事对话框前也能切换成另一应用程序
 MB_SYSTEMMODAL =
$0000一千;   //系统形式,必须终止对话框后,本事做别的操作
 MB_TASKMODAL =
$0000三千;    //职务形式,在未终止对话框前也能切换来另一应用程序
 MB_HELP = $00004000;       //Help Button
 3、函数重回值
 0            //对话框创设战败
 idOk = 1        //按明确开关
 idCancel = 2      //按裁撤开关
 idAbout = 3       //按相当终止开关
 idRetry = 4       //按重试按键
 idIgnore = 5      //按忽略开关
 idYes = 6        //按是按钮
 idNo = 7        //按否开关

不明白怎么,logingame线程,传递的自定义结构体参数过多,会传递不科学,並且内部有注释的地点会断点无效,运维起来会活动跳过这段代码,求大神解救,多谢。。

◇[DELPHI]改造函数的概念及表明
datetimetofiledate (datetime:Tdatetime):longint;
将Tdatetime格式的日期时间值转变来DOS格式的日马时间值
datetimetostr (datetime:Tdatetime):string;
将Tdatatime格式变量调换到字符串,假如datetime参数不含有日期值,重返字符串日期展现成为00/00/00,假若datetime参数
中尚无时间值,再次回到字符串中的时间部分显得成为00:00:00 AM
datetimetostring (var result string;
const format:string;
datetime:Tdatetime);
依照给定的格式字符串转换时间和日期值,result为结果字符串,format为转移格式字符串,datetime为日期时间值
datetostr (date:Tdatetime)
使用shortdateformat全局变量定义的格式字符串将date参数转变来对应的字符串
floattodecimal (var result:Tfloatrec;value:
extended;precision,decimals:
integer); 将浮点数调换到十进制表示
floattostr (value:extended):string
将浮点数value转变到字符串格式,该调换使用普通数字格式,转变的有效位数为16个人。
floattotext (buffer:pchar;value:extended;
format:Tfloatformat;precision,
digits:integer):integer;
用给定的格式、精度和小数将浮点值value转变到十进制表示方式,转换结果寄存于buffer参数中,函数重返值为存款和储蓄到buffer中的字符位数,buffer是非0结果的字符串缓冲区。
floattotextfmt (buffer:pchar;value:extended;
format:pchar):integer
用给定的格式将浮点值value转变到十进制表示方式,转变结果存放于buffer参数中,函数重临值为存款和储蓄到buffer中的字符位数。
inttohex (value:longint;digits:integer):
string;
将给定的数值value调换来十六进制的字符串。参数digits给出调换结果字符串包罗的数字位数。
inttostr (value:longint):string 将整数调换来十进制方式字符串
strtodate (const S:string):Tdatetime
将字符串转变来日期值,S必须包罗三个合法的格式日期的字符串。
strtodatetime (const S:string):Tdatetime
将字符串S转变来日期时间格式,S必须具备MM/DD/YY
HH:MM:SS[AM|PM]格式,当中国和东瀛期和岁月相隔符与系统时期时间常量设置相关。若无钦命AM或PM新闻,表示使用24小时制。
strtofloat (const S:string):extended;
将给定的字符串调换来浮点数,字符串具有如下格式:
[+|-]nnn…[.]nnn…[<+|-><E|e><+|->nnnn]
strtoint (const S:string):longint
将数字字符串调换来整数,字符串能够是十进制或十六进制格式,要是字符串不是一个法定的数字字符串,系统产生ECONVERTE奥迪Q3RO猎豹CS6至极
strtointdef (const S:string;default:
longint):longint;
将字符串S转变到数字,假如不能将S转变到数字,strtointdef函数重临参数default的值。
strtotime (const S:string):Tdatetime
将字符串S转变来TDATETIME值,S具备HH:MM:SS[AM|PM]格式,实际的格式与系统的小时相关的全局变量有关。
timetostr (time:Tdatetime):string;
将参数TIME转变到字符串。调换结果字符串的格式与系统的光阴相关常量的安装有关。

unit net;

interface
  uses
      sysutils
     ,windows
     ,dialogs
     ,winsock
     ,classes
     ,comobj
     ,wininet;

  //获得本机的局域网ip地址
  function getlocalip(var localip:string): boolean;
  //通过ip重返机器名
  function getnamebyipaddr(ipaddr: string; var macname: string): boolean
;
  //获取互联网中sqlserver列表
  function getsqlserverlist(var list: tstringlist): boolean;
  //获取互联网中的全体互连网项目
  function getnetlist(var list: tstringlist): boolean;
  //获取网络中的工作组
  function getgrouplist(var list: tstringlist): boolean;
  //获取专门的学业组中颇具计算机
  function getusers(groupname: string; var list: tstringlist):
boolean;
  //获取互联网中的能源
  function getuserresource(ipaddr: string; var list: tstringlist):
boolean;
  //映射互连网驱动器
  function netaddconnection(netpath: pchar; password: pchar;localpath:
pchar): boolean;
  //检查测量检验互连网状态
  function checknet(ipaddr:string): boolean;
  //检查实验机器是不是登陆网络
  function checkmacattachnet: boolean;

  //判断ip协议有没有安装   这么些函数有题目
  function isipinstalled : boolean;
  //检查实验机器是不是上网
  function internetconnected: boolean;
implementation

{=================================================================
  功  能: 检验机器是还是不是登录互联网
  参  数: 无
  返回值: 成功:  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;

{=================================================================
  功  能: 再次来到本机的局域网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;

{=================================================================
  功  能: 通过ip再次回到机器名
  参  数:
          ipaddr: 想要获得名字的ip
  返回值: 成功:  机器名   失败:  ”
  备 注:
    inet_addr function converts a string containing an internet
    protocol dotted address into an in_addr.
  版 本:
    1.0  2002/10/02 22:09:00
=================================================================}
function getnamebyipaddr(ipaddr : string;var macname:string): boolean;
var
  sockaddrin: tsockaddrin;
  hostent: phostent;
  wsadata: twsadata;
begin
  result := false;
  if ipaddr = ” then exit;
  try
    wsastartup(2, wsadata);
    sockaddrin.sin_addr.s_addr := inet_addr(pchar(ipaddr));
    hostent := gethostbyaddr(@sockaddrin.sin_addr.s_addr, 4,
af_inet);
    if hostent <> nil then
      macname := strpas(hostent^.h_name);
    result := true;
  finally
    wsacleanup;
  end;
end;

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注