2012-06-08 8 views
5

Ponieważ środowisku Metro w systemie Windows 8 brakuje większości bibliotek klas .NET lub zawiera ona istotnie zmniejszoną wersję, czy można wykonać polecenie "ping" z aplikacji w stylu Metro? Jest wsparcie dla Sockets, więc myślę, że jest nadzieja, ale nie wiem od czego zacząć, ponieważ każdy przykład "C# Ping" używa System.Net.NetworkInformation.Ping i nie jest dostępny w WinRT.Czy można napisać klasę Ping w języku C#, która będzie działać w środowisku Windows 8 Metro?

Zajrzałem również do kodu źródłowego dla Mono, a ich implementacja pinga uruchamia ping.exe i zwraca wynik ze standardowego okna wyjściowego wiersza poleceń.

Odpowiedz

5

Nie, niestety nie. Protokół ICMP nie jest obsługiwany w programie WinRT: IcmpCreateFile i powiązane z nim interfejsy API Win32 są dostępne tylko na partycji API "desktop". Protokół ICMP można zaimplementować za pomocą nieprzetworzonych gniazd, ale ponieważ nie są one obsługiwane w WinRT (i tak zazwyczaj wymagają podniesienia), ta opcja również nie jest dostępna.

Jako twórca narzędzia sieciowego do skanowania do sklepu Windows Store (http://lanscan.rcook.org/), chciałbym móc to zrobić.

+2

Naprawdę chciałbym móc to zrobić. Prowadzę http://www.wp-networktools.com/ i ciągle dostaję złe recenzje, ponieważ aplikacja nie wysyła pingów do lokalnych adresów. Próbowałem przenieść go do WinRT, ale bez tego API dostanę tak kiepskie recenzje, że nie jest to naprawdę warte zachodu. Szkoda naprawdę, bo byłoby naprawdę fajnie. – Nate

+0

Tak. To jest właśnie informacja zwrotna, którą otrzymałem od kilku osób w odniesieniu do Lanscan! –

Powiązane problemy