Checking for a LAN connection (Views: 708)
Problem/Question/Abstract: Checking for a LAN connection Answer: To check for a LAN connection, various things can be done, like checking for your user name, or retrieving logon information from the registry, but they can all fail if you consider a dock able notebook. The following function searches for actual existing connections. const MAX_NEIGHBORS = 20; function NetAvailable: Boolean; var NetRes: array[0..MAX_NEIGHBORS] of TNetResource; NNError, hEnum, EntryCount, NetResLen: DWORD; loop1: Integer; begin hEnum := 0; Result := FALSE; try NNError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, nil, hEnum); if NNError = NO_ERROR then begin while NNError <> ERROR_NO_MORE_ITEMS do begin EntryCount := 1; NetResLen := SizeOf(NetRes); NNError := WNetEnumResource(hEnum, EntryCount, @NetRes, NetResLen); if (NNError = NO_ERROR) then begin for loop1 := 1 to EntryCount do begin if Pos('Microsoft', NetRes[0].lpProvider) = 1 then begin Result := TRUE; Break end end end else begin Break end end; WNetCloseEnum(hEnum) // close enum end except on exception do begin ShowMessage('Network Neighborhood Detection Failed.') end; end end; |