用DELPHI7.如何监视网卡的状态(连接或断开或禁用)
解决方案 »
- 【泰坦散分贴】亮剑生了有3天了,按照惯例,摆下三朝酒,欢迎捧场!!!哈哈
- sql数据库中日期型数据显示问题
- 高分请教: delphi的小数问题。急,在线等待。。。
- 使用IdTcpClient和IdTcpServer组件传送图片时出错: Socket Error # 10061 Connection refused
- 打开大量的数据,怎么做到界面不会停止响应?
- delphi+mapx,请大家帮帮忙!!十分感谢!!
- 论数据库的导入导出数据!
- 大家来玩玩首尾相接的游戏哈!!!!!
- 急急急,该怎样用程序做数据备份啊??在线等待,100分重谢!
- 请问.和..算是什么?目录还是文件??
- 关于从服务器自动升级问题
- ado速度问题~~
unit Link;
interface
function GateWay:string;
procedure IfLink;implementationusesmain,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,Registry,
Grids;
function GateWay:string;
var
Reg :TRegistry;
MyStr : TStrings;
buffer : array[0..1024] of byte;
i:integer;
info:TRegKeyInfo ;
str:string;
begin
Result:='0';
Reg :=TRegistry.Create;
Mystr:=Tstringlist.Create;
try
Reg.RootKey :=HKEY_LOCAL_MACHINE;
if Reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards',false) then
begin
if reg.GetKeyInfo(info) then
beginreg.GetKeyNames(mystr);
str:='SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\'+Mystr.Strings[0];
end;
end;
finally
Reg.CloseKey;
Mystr.Free;
Reg.RootKey :=HKEY_LOCAL_MACHINE;
if reg.OpenKey(str,false) then
begin
str:=reg.ReadString('ServiceName');
end;
Reg.CloseKey;
Reg.RootKey :=HKEY_LOCAL_MACHINE;
if reg.OpenKey('SYSTEM\CurrentControlSet\Services\'+str+'\Parameters\Tcpip\',false) then
begin
str:='';
for i:= 1 to reg.ReadBinaryData('defaultGateway',buffer,sizeof(buffer)) do
str:=str+chr(dword(buffer[i-1]));
end;
if str=chr(0) then
begin
str:='';
for i:= 1 to reg.ReadBinaryData('DhcpDefaultGateway',buffer,sizeof(buffer)) do
str:=str+chr(dword(buffer[i-1]));
end;Reg.CloseKey;
reg.Free;
if (str=char(0)) or (str='') then
str:='66.218.71.88';
result:=str;
end;
end;
procedure IfLink;begin
with mainForm do beginICMP.ReceiveTimeout:=10;
try
ICMP.Host := GateWay;
ICMP.Ping;linklabel.caption:='正常';
linkLabel.Font.Color:=clGreen;
except
linklabel.caption:='断开';
mainform.linkLabel.Font.Color:=clred;
end;
end;
end;end.