wie LAN trennen unter Windows10

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie LAN trennen unter Windows10

Beitrag von RSBasic »

Laut MSDN soll man diese WinAPI-Funktion nicht mehr verwenden, sondern stattdessen die Methode GetConnectivity vom Interface INetworkListManager. Da konnte ich aber im PB-Forum keinen Beispielcode finden.
Du kannst, wie _JON_ vorgeschlagen, mit netsh interface show interface den Namen auslesen. Beispielcode: http://www.purebasic.fr/english/viewtop ... 16#p498516
Der Nachteil ist aber die folgende Abfrage:

Code: Alles auswählen

If FindString(result, "Connected")
In der deutschen Windows-Version muss aber so lauten:

Code: Alles auswählen

If FindString(result, "Verbunden")
Aber weiter unten im Thread gibt es ein Beispielcode zum Auslesen des Namens aus der Registry. Die einzelnen Verbindungseinträge sind hier gespeichert: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: wie LAN trennen unter Windows10

Beitrag von udg »

wow, ich hätte nie gedacht das so eine simple Sache so einen Aufwand für W10 benötigt. mal sehen ob ich das hinbekomme.

Danke für die vielen Infos
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: wie LAN trennen unter Windows10

Beitrag von Benubi »

udg hat geschrieben:wow, ich hätte nie gedacht das so eine simple Sache so einen Aufwand für W10 benötigt. mal sehen ob ich das hinbekomme.

Danke für die vielen Infos
Ja, und wenn Du auf sowas stehst, bist Du bei Windows immer an der richtigen Adresse!
Als User, Programmierer oder Administrator ...:lol:
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie LAN trennen unter Windows10

Beitrag von RSBasic »

@Benubi
Als ob die Entwicklung mit der API-Schnittstelle unter Linux immer einfach ist. Es gibt immer einfache und aufwendige Funktionen.
Da habe ich unter http://chabba.de/LinuxAPI.html auch schon komplexe Codes gesehen, obwohl das Ergebnis, welches man haben möchte, nur eine Kleinigkeit ist.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: wie LAN trennen unter Windows10

Beitrag von Benubi »

RSBasic hat geschrieben:@Benubi
Als ob die Entwicklung mit der API-Schnittstelle unter Linux immer einfach ist. Es gibt immer einfache und aufwendige Funktionen.
Da habe ich unter http://chabba.de/LinuxAPI.html auch schon komplexe Codes gesehen, obwohl das Ergebnis, welches man haben möchte, nur eine Kleinigkeit ist.
Du hast natürlich Recht ! Ich mache mir da auch gar keine Illusionen - ich entwickle ja nicht unter Linux, sondern nur unter Windows (BIS JETZT) ; allerdings hat Windows ja gerne den Anspruch "Professional" zu sein und kostet Geld. Die verdienen Milliarden und machen es uns kleinen Entwicklern anscheinend absichtlich schwer, auf Ihre OS/API zuzugreifen ... sei es weil die Dokumentation schwächelt, oder weil es bewusst erschwert wird. Die Linuxer wurden ja immer als "Frickler" bescholten, als "Bastler" und "Anfänger" und "unprofessionell" und so ne "Studenten" etc. ... Die Windows API ist nur mit nicht-Microsoft-Quellen verständlich, jedenfalls für mich.

Man kann auch ein paar tausend EUR / US$ ausgeben um sich zum Profi bei MS ausbilden lassen; dann kannst Du alles aber nur auf einer Version von Windows z.B. windows7 oder windows2000. Dann kannst Du für jede Windows Version eine neue Ausbildung/Weiterbildung machen; jedesmal wird es anders gemacht. Es kommt was dazu, manche Sachen gehen nicht mehr und dann wird mal einfach so alles geändert... Wenn man sich für solch einen Weg entscheidet, hat man auch keine Zeit mehr für PureBasic oder nicht-MS-Programmiersprachen und man ist für eine Weile (oder für immer) an der Leine von MS. Dann benutzt man nur noch MS Produkte, weil diese eben am Produktivsten sind und alles können und man ist zu 100% abhängig, und verliert die Platform-Unabhängigkeit etc. Wenn man seine gesamte Zeit in etwas investiert, fehlt die Zeit für Alternativen bzw. Konkurenzprodukte... Und wärend es schwer bis unmöglich ist dies und das in Windows zu machen, wird es für Windows immer einfacher nach Hause zu telefonieren.

Also nur weil Linux "manchmal schlecht" ist, heisst es nicht das MS Windows "in der Regel besser" ist. Es ging mir nicht die OS zu vergleichen auch wenn das ein wenig jetzt passiert ist. Ich wünschte nur es gäbe noch einen aktuellen, lebenden Amiga - dann wäre vermutlich wirklich "alles" besser :)
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: wie LAN trennen unter Windows10

Beitrag von udg »

gut und schön, hilft aber noch nicht weiter :D
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie LAN trennen unter Windows10

Beitrag von RSBasic »

Andere Möglichkeit, den Verbindungsnamen auszulesen:

Code: Alles auswählen

wmic.exe nic where "NetConnectionStatus=2" get NetConnectionID
Du musst nur wssen, welcher Eintrag das ist.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie LAN trennen unter Windows10

Beitrag von RSBasic »

Und hier ein Beispielcode, wie man den Namen mit Hilfe der GUID auslesen kann:

Code: Alles auswählen

EnableExplicit

#MAX_ADAPTER_NAME = 128

Procedure.s GetConnectionName(ConnectionGUID$)
  Protected Size = #MAX_ADAPTER_NAME
  Protected Name$
  Protected Result
  Protected Key
  
  Name$ = Space(Size)
  Result = RegOpenKeyEx_(#HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" + ConnectionGUID$ + "\Connection", 0, #KEY_READ, @Key)
  If Result = 0
    RegQueryValueEx_(Key, "Name", 0, 0, @Name$, @Size)
    RegCloseKey_(Key)
  EndIf
  
  ProcedureReturn Name$
EndProcedure

MessageRequester("", GetConnectionName("{4AAD9BA1-5023-4A2C-AB7B-485DF595671D}"), 0)
Die GUID kannst du mit folgendem Code auslesen: http://www.purebasic.fr/english/viewtop ... 70#p498570
Problem ist wieder, du bekommst mehrere Einträge zurück, wenn auf dem Computer mehrere Verbindungen existieren.
Wie man herausfindet, welche Verbindung davon die LAN-Verbindung ist, mit der man ins Internet geht, weiß ich nicht.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: wie LAN trennen unter Windows10

Beitrag von udg »

ich geb auf.
Das funktioniert alles nicht oder nur sporadisch.

Dann bleibts.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Antworten