김영대님 홈 팁란에서 찾은 건데요..
밑에 소스처럼하면 Lan인지 modem인지가
구분이 되는데 만약에
Lan 사용자가 어떤에러가나서 (Lan선이 뽑혔다든가 서버가 죽었다든가)
Internet에서 접근이 안될 경우 이함수로는 check할 수가 없는 것 같아요...
이런경우 어떻게 처리 할 수 있을까요...
제가 잘못 알고 있는 걸가요?
실행시키고 임의로 랜선을 뽑아도 계속 Lan으로 인터넷 사용중이란
메시지가 뜨거든요...
알고 계신분 좀 갈켜 주세요..
그럼 즐거운 넷서핑 하시길~~
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, WinInet;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
dwConnectionTypes: DWORD;
begin
if InternetGetConnectedState(@dwConnectionTypes, 0) then // 정상적으로 검사됨
begin
if (dwConnectionTypes and INTERNET_CONNECTION_MODEM) <> 0 then
ShowMessage('Modem으로 인터넷 사용중...');
if (dwConnectionTypes and INTERNET_CONNECTION_LAN) <> 0 then
ShowMessage('LAN으로 인터넷 사용중...');
if (dwConnectionTypes and INTERNET_CONNECTION_PROXY) <> 0 then
ShowMessage('Proxy로 인터넷 사용중...');
if (dwConnectionTypes and INTERNET_CONNECTION_MODEM_BUSY) <> 0 then
ShowMessage('Modem을 다른 용도로 사용중');
end
else
begin
ShowMessage('검사할 수 없습니다');
end;
end;