Jaki jest najłatwiejszy sposób sprawdzenia, czy połączenie internetowe jest dostępne programowo?sprawdź, czy połączenie internetowe jest dostępne z C#
EDYTOWANIE: Zgodnie z sugestią próbowałem użyć następującej metody, ale zawsze zwraca true.
[Flags]
enum InternetConnectionState : int
{
INTERNET_CONNECTION_MODEM = 0x1,
INTERNET_CONNECTION_LAN = 0x2,
INTERNET_CONNECTION_PROXY = 0x4,
INTERNET_RAS_INSTALLED = 0x10,
INTERNET_CONNECTION_OFFLINE = 0x20,
INTERNET_CONNECTION_CONFIGURED = 0x40
}
class Program
{
[DllImport("WININET", CharSet = CharSet.Auto)]
static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved);
static void Main(string[] args)
{
InternetConnectionState flags = 0;
bool isConnected = InternetGetConnectedState(ref flags, 0);
Console.WriteLine(isConnected);
//Console.WriteLine(flags);
Console.ReadKey();
}
}
Dodatkowe informacje (jeśli to pomaga): Dostęp do Internetu przez udostępnioną sieć Wi-Fi.
Nie jestem pewien, który interfejs API obsługuje, ale w systemie Windows Vista i nowszych faktycznie sprawdza połączenie z Internetem. Jestem pewien, że te informacje są ujawnione w interfejsie API, więc jeśli szukasz rozwiązania, które najlepiej działa pod Vistą i nadchodzącym Windows 7, to jest to API, którego będziesz potrzebować, jeśli ty lub ktoś inny może wymyślić który to jest. – jasonh
Potrzebuję go do pracy z wygraną 7 –
Edytowano pytanie zawierające wyniki sugerowanego rozwiązania. To nie działa dla mnie, proszę o pomoc. Dzięki! –