2012-06-08 2 views
5

Da die Metro-Umgebung unter Windows 8 die meisten .NET-Framework-Klassenbibliotheken nicht enthält oder eine erheblich reduzierte Version enthält, ist es möglich, einen "Ping" von einer Metro-Anwendung auszuführen? Es gibt Unterstützung für Sockets, also denke ich gibt es Hoffnung, aber ich weiß nicht, wo ich anfangen soll, da jedes "C# Ping" Beispiel System.Net.NetworkInformation.Ping verwendet und das in WinRT nicht verfügbar ist.Ist es möglich, eine Ping-Klasse in C# zu schreiben, die in der Windows 8 Metro-Umgebung ausgeführt wird?

Ich schaute auch in den Quellcode für Mono, und ihre Ping-Implementierung startet ping.exe und gibt das Ergebnis aus dem Standardausgabefenster der Befehlszeile zurück.

Antwort

5

Nein, leider nicht. ICMP wird in WinRT nicht unterstützt: IcmpCreateFile und verwandte Win32-APIs sind nur in der "Desktop" -API-Partition verfügbar. ICMP kann mit Raw-Sockets implementiert werden, da diese jedoch in WinRT nicht unterstützt werden (und normalerweise eine Erhöhung erfordern), steht Ihnen diese Option ebenfalls nicht zur Verfügung.

Als Entwickler eines Windows Store Netzwerk-Scan-Tool (http://lanscan.rcook.org/) würde ich gerne in der Lage sein, dies zu tun.

+2

Ich wünschte wirklich, ich könnte das auch tun. Ich laufe http://www.wp-networktools.com/ und bekomme immer wieder schlechte Bewertungen, weil die App keine lokalen Adressen pingt. Ich habe versucht, es nach WinRT zu portieren, aber ohne diese API werde ich so schlechte Bewertungen bekommen, dass es sich nicht wirklich lohnt. Schade wirklich, denn es wäre wirklich cool. – Nate

+0

Ja. Das ist genau das Feedback, das ich von einigen Leuten in Bezug auf Lanscan erhalten habe! –

Verwandte Themen