需要控件:
Button1
Button2
Edit1
Edit2
================================================
proc神行太保戴宗 edure 1Click(Sender: TObject);
var
s:array[1..127] of char;
i:DWord;
begin
//获取计算机名
GetComputerName(@s,i);
:=s;
end;
//处理点击“修改”按钮后的事件
procedure 2Click(Sender: TObject);
begin
//假设更改计宝刀不老的意思 算机名成功
if SetComputerName(PChar()) then
ShowMessage('您的计算机已改名为'+)
el
ShowMessage('改名失败');
end;
end.
delphi如何获得本机计算机名和IP
function GetLocalIP(var LocalIp: string): Boolean;
var
HostEnt: PHostEnt;
Ip: string;
addr: pchar;
Buffer: array [0..63] of char;
GInitData: TWSADATA;
begin
Result := Fal;
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返回机器名
参 数:
IpAdd小馄饨煮多久 r: 想要得到名字的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 := Fal;
if IpAddr = '' then exit;
try
WSAStartup(2, WSAData);
_addr.s_addr := inet_addr(PChar(IPAddr));
HostEnt := gethostbyaddr(@_addr.S_addr, 4, AF_INET);
if HostEnt <> nil then
MacName := StrPas(Hostent^.h_name);
Result := True;
finally
WSACleanup;
end;
end;
{=================================================================
功 能: 判断Ip协议有没有安装
参 数: 无
返回值: 成功: True 失败: Fal;
备 注: 该函数还有问题
版 本:
1.0 2002/10/02 21:05:00
=========================================ps怎么瘦身 ========================}
Function IsIPInstalled : boolean;
var
WSData: TWSAData;
ProtoEnt: PProtoEnt;
begin
Result := True;
try
if WSAStartup(2,WSData) = 0 then
begin
ProtoEnt := GetProtoByName('IP');
if ProtoEnt = nil then
Result := Fal
end;
finally
WSACleanup;
end;
end;
{=================================================================
功 能: 列举所有网络类型
参 数:
List: 需要填充的List
返回值: 成功: True,并填充List 失败: Fal;
备 注:
版 本:
1.0 2002/10/03 08:54:00
=================================================================}
Function GetNetList(var List: Tstringlist): Boolean;
type
TNetResourceArray = ^TNetResource;//网络类型的数组
Var
p: TNetResourceArray;
Buf: Pointer;
i: SmallInt;
lphEnum: THandle;
NetResource: TNetResource;
Count,BufSize,Res: DWORD;
begin
Result := Fal;
;
Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
RESOURCEUSAGE_CONTAINER, Nil,lphEnum);
if Res <> NO_ERROR then exit;//执行失败
Count := $FFFFFFFF;//不限资源数目
BufSize := 8192;//缓冲区大小设置为8K
GetMem(Buf, BufSize);//申请内存,用于获取工作组信息
Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);//获取网络类型信息
//资源列举完毕 //执行失败
if ( Res = ERROR_NO_MORE_ITEMS ) or (Res <> NO_ERROR ) then Exit;
P := TNetResourceArray(Buf);
for i := 0 to Count - 1 do//记录各个网络类型的信息
begin
(p^.lpRemoteName);
Inc(P);
end;
Res := WNetCloEnum(lphEnum); //关闭一次列举
if Res <> NO_ERROR then exit; //执行失败
Result := True;
FreeMem(Buf); //释放内存
end;
{=================================================================
功 能: 映射网络驱动器
参 数:
NetPath: 想要映射的网络路径
Password: 访问密码
Localpath 本地路径
返回值: 成功: True 失败: Fal;
备 注:
版 本:
1.0 2002/10/03 09:24:00
=================================================================}
Function NetAddConnection(NetPath: Pchar; PassWord: Pchar
;LocalPath: Pchar): Boolean;
var
Res: Dword;经典阅读
begin
Result := Fal;
Res := WNetAddConnection(NetPath,Password,LocalPath);
if Res <> No_Error then exit;
Result := True;
end;
朋友们在用Delphi编程序的时候,常常碰到需要在程序中获取自己的IP地址的情况。
在以往的版本中,可以通过编写一段代码或函数实现这一功能。但有了Delphi 7,这个工
作可以更简化了。利用控件只需一句代码,就可以非常方便地实现这一功能。
新建一Project1,在form1中添加控件statusbar
1(Win爱的教育读后感 32页)和控件IdIPWatch1(Indy Misc页)。接着设置好控件属性:在
statusbar1的panels中添加0-TStatusPanel和1-TStatusPanel两项;IdIPWatch1
的HistoryEnabled的属性设为Fal。
编写代码:在eate(Sender: TObject)中加入以下代码:
[1].Text:=P;
OK!按下F9功能键,运行程序,看一下窗口下边状态栏中是不是已经显示了本
机的IP地址了?
提示:若IdIPWatch1的HistoryEnabled的属性设为True,则会在程序退出时,自
动生成一个文件(文件名为HistoryFileName属性设定的值),记录当前的IP地址。
procedure 1Click(Sender: TObject);
var
ComputerName :array[0..MAX_COMPUTERNAME_LENGTH + 1] of char;
sComputerName :string;
lpSize :DWORD;
sResult :string; //add by czf 1112
begin
lpSize := MAX_COMPUTERNAME_LENGTH + 1;
if GetComputerName(@ComputerName ,lpSize) then
begin
sComputerName := ComputerName;
end
el
begin
世界上最大的龟 sComputerName := '';
end;
// Result := sResult ;
showmessage(sComputerName);
end;
在使用此函数去前应先在 us 中添加 Winsock
function tIP:string;
var
WSAData:TWSAData;
HostName:array[0..MAX_COMPUTERNAME_LENGTH] of Char;
HostEnt:PHostEnt;
LastIP:PInAddr;
IPList:^PInAddr;
begin
result:='''';
if 0=WSAStartup(MAKEWORD(1,1), WSAData) then
try
if 0=gethostname(HostName, MAX_COMPUTERNAME_LENGTH+1) then
begin
HostEnt:=gethostbyname(HostName);
if HostEnt<>nil then
begin
IPList:=Pointer(HostEnt^.h_addr_list);
repeat
LastIP:=IPList^;
INC(IPList);
until IPList^=nil;
if LastIP<>nil then
result:=inet_ntoa(LastIP^);
end;
end;
finally
WSACleanup;
end;
end;
本文发布于:2023-04-22 11:01:01,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/842597.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |