如题,请高手指点一二,另外请问如何获得网络上计算机的IP?
解决方案 »
- 如何判定窗体的鼠标是否活动,或无输入状态.本人想做个自动关闭程序,比如隔了10分钟后,判断后,鼠标无活动后,就关闭程序.先谢谢了
- 如何让idhttp.get立刻返回?
- c++ 用RETURN 返回 那delphi是什么关键字啊?
- DBEdit的数据修改问题
- 怎样寻找变量?
- 问几个关于多线程的基础,看谁能准确作答,急
- 问个课外的问题(第五届全国中小学生电脑程序制作)
- 用adoquery来查询,限制某一时间段时(按照时间字段),不对,查出来的时间不对
- 怎么样做一个在线升级的程序呢?就相当于瑞星的在线更新一样升级程序?
- 请问报表大侠:quickreport中的复合报表控件预览窗口能不能不让它有最小化最大化按钮,或者让它stayontop也行
- 请问各位大虾,在DELPHI中怎么实现VC++的组件对象序列化呢?
- 怎样使得FORM的大小适应屏幕的分辨率?
function CheckMacAttachNet: Boolean;
begin
Result := False;
if GetSystemMetrics(SM_NETWORK) <> 0 then
Result := True;
end;{=================================================================
功 能: 检测计算机是否上网
参 数: 无
返回值: 成功: True 失败: False;
备 注: uses Wininet
版 本:
1.0 2002/10/07 13:33:00
=================================================================}
function InternetConnected: Boolean;
const
// local system uses a modem to connect to the Internet.
INTERNET_CONNECTION_MODEM = 1;
// local system uses a local area network to connect to the Internet.
INTERNET_CONNECTION_LAN = 2;
// local system uses a proxy server to connect to the Internet.
INTERNET_CONNECTION_PROXY = 4;
// local system's modem is busy with a non-Internet connection.
INTERNET_CONNECTION_MODEM_BUSY = 8;
var
dwConnectionTypes : DWORD;
begin
dwConnectionTypes := INTERNET_CONNECTION_MODEM+ INTERNET_CONNECTION_LAN
+ INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
使用 WinSock 单元;
过程如下:
function HostToIP(Name: string; var Ip: string): Boolean;
var
wsdata : TWSAData;
hostName : array [0..255] of char;
hostEnt : PHostEnt;
addr : PChar;
begin
WSAStartup ($0101, wsdata);
try
gethostname (hostName, sizeof (hostName));
StrPCopy(hostName, Name);
hostEnt := gethostbyname (hostName);
if Assigned (hostEnt) then
if Assigned (hostEnt^.h_addr_list) then begin
addr := hostEnt^.h_addr_list^;
if Assigned (addr) then begin
IP := Format ('%d.%d.%d.%d', [byte (addr [0]),
byte (addr [1]), byte (addr [2]), byte (addr [3])]);
Result := True;
end
else
Result := False;
end
else
Result := False
else begin
Result := False;
end;
finally
WSACleanup;
end
end;