procedure TForm1.Button1Click(Sender: TObject);
var
Types : Integer;
begin Types := INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
if InternetGetConnectedState(@types, 0) then
Edit1.Text := 'your pc is Online now'
else
Edit1.Text := 'your pc is offline now';
end;解释一下 Types 作用
var
Types : Integer;
begin Types := INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
if InternetGetConnectedState(@types, 0) then
Edit1.Text := 'your pc is Online now'
else
Edit1.Text := 'your pc is offline now';
end;解释一下 Types 作用
BOOL InternetGetConnectedState(
LPDWORD lpdwFlags,
DWORD dwReserved
);
Delphi中好像沒有聲明該API,所以要手動聲明:function InternetGetConnectedState(var flags:integer;Reserved:integer):boolean;stdcall;external 'wininet.dll';其中flags參數,會返回如下值之一或者多個值的組合:
INTERNET_CONNECTION_MODEM: 使用拔號上網
INTERNET_CONNECTION_LAN: 通過局域網連接到Internet
INTERNET_CONNECTION_PROXY: 使用代理連接Internet
INTERNET_CONNECTION_MODEM_BUSY: MODEM被其他非INTERNET连接占用
INTERNET_CONNECTION_OFFLINE: 離線
INTERNET_RAS_INSTALLED: 系統安裝了RSA
INTERNET_CONNECTION_CONFIGURED
wininet;procedure TForm1.Button1Click(Sender: TObject);
var
flags: DWORD;
begin
if InternetGetConnectedState(@flags, 0) then
begin
if (flags and INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM then
showmessage('Modem')
else if (flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN then
showmessage('LAN')
else if (flags and INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY then
showmessage('Proxy')
else if (flags and INTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSY then
showmessage('Modem Busy');
end;
end;
end;
showmessage('您的机器连接到了互联网上')
else
showmessage('您的机器没有连接到了互联网上');