Title: How to Get / set global offline State
uses wininet;
// Get offline state
function IsGlobalOffline: Boolean;
var
State, Size: DWORD;
begin
Result := False;
State := 0;
Size := SizeOf(DWORD);
if InternetQueryOption(nil, INTERNET_OPTION_CONNECTED_STATE, @State, Size) then
if (State and INTERNET_STATE_DISCONNECTED_BY_USER) 0 then
Result := True;
end;
//Set offline state
procedure SetGlobalOffline(fGoOffline: Boolean);
var
ci: INTERNET_CONNECTED_INFO;
begin
if fGoOffline then
begin
ci.dwConnectedState := INTERNET_STATE_DISCONNECTED_BY_USER;
ci.dwFlags := ISO_FORCE_DISCONNECTED;
end
else
ci.dwConnectedState := INTERNET_STATE_CONNECTED;
InternetSetOption(nil, INTERNET_OPTION_CONNECTED_STATE, @ci, SizeOf(ci));
end;