Wie beurteilen Sie DFÜ, Breitband oder drahtlose Internet-Verbindungen in C ++ für Windows erkennen?

StackOverflow https://stackoverflow.com/questions/93545

  •  01-07-2019
  •  | 
  •  

Frage

Ich habe ein Installationsprogramm (nur ein reguläres C ++ MFC-Programm, nicht Windows Installer-basierte), die auf der Art der Internetverbindung einig Registry-Werte basieren setzen sollten: Breitband, DFÜ und / oder drahtlos. Gerade jetzt diese Information wird, indem er eine Reihe von Ja oder Nein-Fragen bestimmt. Das Problem ist, dass die Person, die Anlagen zu tun ist nicht die gleiche Person, die den Computer besitzt und verwendet, so dass sie nicht immer sicher, was die Antworten auf diese Fragen sein sollen. Gibt es eine Möglichkeit, um programmatisch eine dieser Informationen zu bestimmen? Der Code ist in C ++ (und optional MFC) für Windows XP geschrieben und höher. .NET-basierten Lösungen sind keine Option, weil ich will nicht, um zu bestimmen, ob das Framework installiert ist, bevor unser Installationsprogramm ausführen kann.

Um zu klären, ist das Problem in erster Linie, dass die drahtlosen und DFÜ-Verbindungen sind nicht „always-on“, die einen Bedarf für unser Produkt schafft eine andere Art und Weise zu verhalten, weil unser Server nicht immer verfügbar ist. So eine streng Geschwindigkeitsmess Lösung würde nicht helfen, obwohl es eine Einstellung ist, die Geschwindigkeit ist abhängig, so dass das Produkt nicht versucht MB Informationen über eine DFÜ-Verbindung zu senden, sobald sie verbindet.

War es hilfreich?

Lösung

Verwenden InternetGetConnectedState API Internetverbindungsstatus abzurufen.

Ich habe es getestet und es funktioniert gut.

Ich fand dieses Dokument, das helfen kann:

http://www.pcausa.com/resources/InetActive.txt

Andere Tipps

[Ich habe keine Ahnung, wie genau das bekommen, die Informationen, die Sie gefragt, aber ...] Vielleicht könnten Sie (für sich selbst) neu formulieren, was Sie zu erreichen versuchen? Wie, statt zu fragen, „muss der Benutzer Breitband- oder Dial-Up“, fragen: „Wie viel Bandbreite der Internetverbindung des Nutzers tut“ - und dann können Sie versuchen, die umformulierte Frage ohne Benutzereingaben zu beantworten (wie durch die Bandbreite Messung) <. / p>

Btw. wenn der Benutzer nur für „Breitband oder Dial-Up“ fragen, können Sie einige Probleme auftreten:

  • was ist, wenn der Benutzer eine Verbindungsart hat hast du nicht davon?
  • was ist, wenn der Benutzer nicht weiß, (weil es zu einem PPPoE DSL-Modem / Router geht nur ein Ethernet-Kabel ist)?
  • was ist, wenn der Benutzer durch eine Reihe von Verbindungen verbunden ist (VPN über Dial-Up, zu einem anderen Netzwerk, das Breitband hat?)

Bitte um „Fähigkeiten“ statt „Typ“ könnte nützlicher sein in diesen Fällen.

In Bezug auf die Frage "ist die Internet-Verbindung permanent oder nicht?":

  • bester Weg wäre wahrscheinlich die App robust genug, um immer fertig mit einer nicht-dauerhaften Verbindung zu machen :-), um die gleiche Arbeit würde mit Einwahl und Breitband ...
  • alternativ, vielleicht können Sie herausfinden, wie lange die Internetverbindung des Benutzers bereits eingerichtet wurde, und mit Systemverfügbarkeit vergleichen? Wenn die Verbindung online fast so lang war wie der Computer ausgeführt wurde, ist es wahrscheinlich eine dauerhafte Verbindung.

Wie auch immer, wird diese Heuristik wahrscheinlich für obskure Verbindungstypen versagen.

Auch in Bezug auf den Punkt, um nicht viele Daten gesendet werden: wenn die Menschen einen „Breitband + low Traffic-Limit“ Tarif haben, sollten Sie nicht viele Daten senden entweder selbst wenn Bandbreite erlaubt: -)

Am besten wäre es, die Standard-Netzwerkverbindung aktiv zu greifen, sicherzustellen, dass es eine Internet-Verbindung (ping google.com oder ähnliches) und dann fragen, welche Art von Gerät es sich handelt. Sie sollten sich von der feststellen können, welche Verbindung der Benutzer hat.

Ich bin ziemlich sicher, das ist möglich, aber nicht sicher, wie wenn man das macht.

Ich denke, man sollte nur einen schnellen Verbindung-Speed-Test tun. Laden Sie einfach einige spezifische große Dateien, die Zeit, wie lange es dauert, und Sie werden die Geschwindigkeit wissen. Ich stimme mit dem anderen Kerl, fragen sie nicht, welche Art von Verbindung, die sie haben, was wichtiger ist, ist die Geschwindigkeit. Vielleicht im nächsten Jahr sie kommen mit 100Mbit Wählverbindung ... tun Sie alle mit diesem erstaunlichen neuen Gerät die crappy lowbandwidth Version Ihrer App zu bekommen?

Ich würde mit oliver einverstanden sind, wie Sie bedeuten: Sie können die Funktionalität bereits mit Verbindungsverlust zu bewältigen, warum ermöglichen es standardmäßig nicht

.

Breitbandanschlüsse verwirrt erhalten können bis zu: routersoftware das friert (passiert mir viel) oder Poweradapter, dass Pommes frites, ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top