wie LAN trennen unter Windows10

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

wie LAN trennen unter Windows10

Beitrag von udg »

Ich habe ein mini Tool geschrieben, dass mir mit klick auf den Button jeweils die Verbindung zum Inet trennen oder eben wieder herstellen soll.
Das ganze funktioniert unter Windows 7 wunderbar.
Leider bekommen wir unter Windows 10 keine Rechte, den LAN Adapter per Buttonklick zu trennen bzw, dann wieder mit dem Inet zu verbinden.

Hat jemand eine Lösung dafür?
Um den Vorgang durchführen zu können, benötigt die Exe bzw. das Kommando ADMIN Rechte die ich im Compiler via Checkbox aktiviere wenn ich das Ganze zu einer Exe compiliere.

Bild

hier der code:

Code: Alles auswählen

;
; Purebasic 5.61
;
; Compileroption --> Request Adminmode
; WINDOWS 7 COMMAND
; 
; lpszConnectionName$ ---> liest den Namen der Verbindung aus
;
; netsh.exe Interface set Interface name = "Lan-Verbindung" admin=disabled
; netsh.exe interface set Interface name = "Lan-Verbindung" admin=enabled
;
; WINDOWS 10 COMMAND
; netsh.exe interface set interface name="Lan-Verbindung" admin=enabled
; netsh.exe interface set interface name="Lan-Verbindung" admin=Disabled
;

EnableExplicit

Enumeration
#Wnd_Main
EndEnumeration

Enumeration
  #Cnt_Window
  ;:Exit Button
  #Btn_Exit
  #Img_BtnExit
  ;:Minimize Button
  #Btn_Minimize
  #Img_BtnMinimize
  ;:Draw Header
  #Header
  #Img_Header
  ;:Window Title
  #Titel
  ;:Font
  #Fnt_SegoeUI12
  #Fnt_SegoeUI14
  #Fnt_SegoeUI16
  #Fnt_Arial10
  
  #Btn_SwitchOff
  #Btn_SwitchOn 
  #Gadget_Exit
EndEnumeration

;:Define Colors
#Wnd_Color      = $868686 ; dark grey
#Col_Header     = $FFFFFF ; white
#Col_Footer     = $808080 ; mid grey
#Col_Text       = $666667 ; black grey
#Col_Container  = $F0F0F0 ; silver grey
#Col_TextHoover = $000000 ; Black
#Col_BtnHover   = $7575CE ; altblau
#Col_BtnLine    = $9A9A9A ; mittelgrau
#Col_BtnConnect = $96B491 ; hellgrün


;:Window size
#Wnd_Width     = 503     ; px
#Wnd_Height    = 280     ; px

Define lpdwFlags
Define lpszConnectionName$ = Space(255)

Global HyperLinkProc
Global hCurcor_Arrow = LoadCursor_(0, #IDC_HAND)
Global Font1 = LoadFont(#PB_Any, "Arial", 10, #PB_Font_HighQuality)
LoadFont(#Fnt_SegoeUI12, "Segoe Ui", 12, #PB_Font_HighQuality)
LoadFont(#Fnt_SegoeUI14, "Segoe Ui", 14, #PB_Font_HighQuality)
LoadFont(#Fnt_SegoeUI16, "Segoe Ui", 16, #PB_Font_HighQuality)

Define Event, EventType

Procedure Event_Gadget_Exit()
  
  Protected Farbe, Farbe2
  
  Select EventType()
      
    Case #PB_EventType_MouseLeave
      Farbe = RGB(128, 128, 128)
      Farbe2 = #Col_Header
    Case #PB_EventType_MouseEnter, #PB_EventType_MouseMove
      Farbe = RGB(0,0,0)
      Farbe2 = #Col_Container
    Case #PB_EventType_LeftButtonDown
      End
      
  EndSelect
  
  StartDrawing(CanvasOutput(#Gadget_Exit))
  Box(0, 0, 60, 60, Farbe2)
  Line(3, 56, 54, -54, Farbe)
  Line(3, 4, 54, 54, Farbe)
  StopDrawing()
  
EndProcedure

Procedure DropShadow(Window)
 
  ; (WindowsAPI) - Generiert bei einem randlosen Fenster einen Schatten
 
  If IsWindow(Window)
    SetClassLongPtr_(WindowID(Window), #GCL_STYLE, #CS_DROPSHADOW)
  EndIf
 
EndProcedure
Procedure SystemButtons()
  ;Exit Button
  CanvasGadget(#Gadget_Exit, WindowWidth(0) - 61, 1, 60, 60)
  StartDrawing(CanvasOutput(#Gadget_Exit))
  Box(0, 0, 60, 60, #Col_Header)
  Line(3, 56, 54, -54, RGB(128, 128, 128))
  Line(3, 4, 54, 54, RGB(128, 128, 128))
  StopDrawing()
  BindGadgetEvent(#Gadget_Exit, @Event_Gadget_Exit())
  
  ;MINIMIZE BUTTON
  CreateImage(#Btn_Minimize, 40, 40)
  StartDrawing(ImageOutput(#Btn_Minimize))
  FillArea(1, 1, -1, #Col_Header)
  Line(0, 39, 40, 1, #Col_Text)
  StopDrawing()
  ImageGadget(#Img_BtnMinimize, WindowWidth(0)-110, 18, 40, 40, ImageID(#Btn_Minimize))
EndProcedure
Procedure main()
  
  Protected Text.s = "", x
  
  OpenWindow(#Wnd_Main, 0, 0, #Wnd_Width, #Wnd_Height, " ", #PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Invisible)
  SetWindowColor(#Wnd_Main, #Wnd_Color)
  DropShadow(#Wnd_Main)
 
  ;HEADER
  CreateImage(#Img_Header, WindowWidth(#Wnd_Main)-2, 60, 32, #Col_Header)
  StartDrawing(ImageOutput(#Img_Header))
  StopDrawing()
  ImageGadget(#Header, 1, 1, 0, 0, ImageID(#Img_Header))
  ;disable to make it possible: grab with LMB Down
  DisableGadget(#Header, #True)
 
  ;Set Window Title
  TextGadget(#Titel, 80, 14, 230, 30, "Dis./ or Reconnect LAN", #SS_CENTER)
  SetGadgetColor(#Titel, #PB_Gadget_BackColor, #Col_Header)
  SetGadgetColor(#Titel, #PB_Gadget_FrontColor, #Col_Text)
  SetGadgetFont(#Titel, FontID(#Fnt_SegoeUI16))
 
  ;Add all Gadgets here
  ContainerGadget(#Cnt_Window, 1, 62, WindowWidth(#Wnd_Main)-2, WindowHeight(#Wnd_Main)-89, #PB_Container_BorderLess)
  SetGadgetColor(#Cnt_Window, #PB_Gadget_BackColor, #Col_Container)
  
    ; Disconnect Internet
    ButtonGadget(#Btn_SwitchOff, 35, 60, 200, 60,"Disconnect Internet", 0)
    SetGadgetFont(#Btn_SwitchOff, FontID(#Fnt_SegoeUI12))
    
    ; Connect to Internet
    ButtonGadget(#Btn_SwitchOn, 265, 60, 200, 60,"Reconnect Internet", 0)
    SetGadgetFont(#Btn_SwitchOn, FontID(#Fnt_SegoeUI12))
   
  CloseGadgetList()

  SystemButtons()

  HideWindow(#Wnd_Main, #False)
 
EndProcedure

main()

Repeat
  Event = WaitWindowEvent()
  EventType = EventType()
 
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        ;Exit
        Case #Img_BtnExit
          End
          
        ;Minimize
        Case #Img_BtnMinimize
          If EventType = #PB_EventType_LeftClick
            SetWindowState(#Wnd_Main, #PB_Window_Minimize)
          EndIf
          
        ;Disconnect
        Case #Btn_SwitchOff
          If EventType = #PB_EventType_LeftClick
            ;Windows 7
            If InternetGetConnectedStateEx_(@lpdwFlags, @lpszConnectionName$, Len(lpszConnectionName$), #Null)
            RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=disabled",  "", #PB_Program_Hide)
          Else
            ;Windows 10
            RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=disabled",  "", #PB_Program_Hide)            
          EndIf
          EndIf
          
        ;Reconnect   
        Case #Btn_SwitchOn
          If EventType = #PB_EventType_LeftClick
            ;Windows 7
            RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=enabled",  "", #PB_Program_Hide)
          Else
            ;Windows 10
            RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=enabled",  "", #PB_Program_Hide)  
          EndIf     
      
      EndSelect
      
    ;DRAG WITH MOUSE
    Case #WM_LBUTTONDOWN
      If WindowMouseX(#Wnd_Main) >= 0 And WindowMouseX(#Wnd_Main) <= WindowWidth(#Wnd_Main)-2 And WindowMouseY(#Wnd_Main) >= 0 And WindowMouseY(#Wnd_Main) <= 61
        SendMessage_(WindowID(#Wnd_Main), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
      EndIf
  EndSelect

ForEver
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 »

Ich verwende Windows 10 und habe deinen Code mit Administratorrechten ausgeführt und getestet. Bei mir funktioniert das Deaktivieren und Aktivieren meiner Internetverbindung einwandfrei.
Führe mal den vollständigen Pfad (netsh.exe set interface [...]) in dener CMD-Konsole, die ebenfalls mit Administratorrechten ausgeführt werden muss, ein und schaue, was netsh.exe dir sagt. Irgendeine Fehlermeldung?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: wie LAN trennen unter Windows10

Beitrag von Bisonte »

Als Fehlermeldung wird ausgegeben : Daten sind unzulässig.... Nichts weiter.
In der CMD mit Adminrechten ausgeführt.... Auch den Namen der Verbindung richtig eingetragen. Nichts....
Selbst wenn man das "admin=disabled" einfach nur "disabled" schreibt, wie es in einigen "Tipps" angegeben wird,
gleiche Fehlermeldung.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: wie LAN trennen unter Windows10

Beitrag von Imhotheb »

Gibts da vielleicht einen Unterschied von Pro und Home?
weil einfach einfach einfach ist ... mach' ich es anders
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: wie LAN trennen unter Windows10

Beitrag von RSBasic »

Ich habe Home und da funktioniert es.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: wie LAN trennen unter Windows10

Beitrag von _JON_ »

Bei meinem Win10 Pro heist es nicht "Lan-Verbindung" sondern "Ethernet".

Musst mal schauen mit:

Code: Alles auswählen

netsh interface show interface
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: wie LAN trennen unter Windows10

Beitrag von udg »

_JON_ hat geschrieben:Bei meinem Win10 Pro heist es nicht "Lan-Verbindung" sondern "Ethernet".

Musst mal schauen mit:

Code: Alles auswählen

netsh interface show interface

den Namen lese ich mit:

If InternetGetConnectedStateEx_(@lpdwFlags, @lpszConnectionName$, Len(lpszConnectionName$), #Null)

aus.

ich hab noch mal eine If Schleife eingebunden. Bringt das was?

Code: Alles auswählen

;
; Purebasic 5.61
;
; WINDOWS 7 COMMAND
;
; lpszConnectionName$ ---> liest den Namen der Verbindung aus
;
; netsh.exe Interface set Interface name = "Lan-Verbindung" admin=disabled
; netsh.exe interface set Interface name = "Lan-Verbindung" admin=enabled
;
; WINDOWS 10 COMMAND
; netsh.exe interface set interface name="Lan-Verbindung" admin=enabled
; netsh.exe interface set interface name="Lan-Verbindung" admin=Disabled
;

EnableExplicit

Enumeration
#Wnd_Main
EndEnumeration

Enumeration
  #Cnt_Window
  ;:Exit Button
  #Btn_Exit
  #Img_BtnExit
  ;:Minimize Button
  #Btn_Minimize
  #Img_BtnMinimize
  ;:Draw Header
  #Header
  #Img_Header
  ;:Window Title
  #Titel
  ;:Font
  #Fnt_SegoeUI12
  #Fnt_SegoeUI14
  #Fnt_SegoeUI16
  #Fnt_Arial10
 
  #Btn_SwitchOff
  #Btn_SwitchOn
  #Gadget_Exit
EndEnumeration

;:Define Colors
#Wnd_Color      = $868686 ; dark grey
#Col_Header     = $FFFFFF ; white
#Col_Footer     = $808080 ; mid grey
#Col_Text       = $666667 ; black grey
#Col_Container  = $F0F0F0 ; silver grey
#Col_TextHoover = $000000 ; Black
#Col_BtnHover   = $7575CE ; altblau
#Col_BtnLine    = $9A9A9A ; mittelgrau
#Col_BtnConnect = $96B491 ; hellgrün


;:Window size
#Wnd_Width     = 503     ; px
#Wnd_Height    = 280     ; px

Define lpdwFlags
Define lpszConnectionName$ = Space(255)

Global HyperLinkProc
Global hCurcor_Arrow = LoadCursor_(0, #IDC_HAND)
Global Font1 = LoadFont(#PB_Any, "Arial", 10, #PB_Font_HighQuality)
LoadFont(#Fnt_SegoeUI12, "Segoe Ui", 12, #PB_Font_HighQuality)
LoadFont(#Fnt_SegoeUI14, "Segoe Ui", 14, #PB_Font_HighQuality)
LoadFont(#Fnt_SegoeUI16, "Segoe Ui", 16, #PB_Font_HighQuality)

Define Event, EventType

Procedure Event_Gadget_Exit()
 
  Protected Farbe, Farbe2
 
  Select EventType()
     
    Case #PB_EventType_MouseLeave
      Farbe = RGB(128, 128, 128)
      Farbe2 = #Col_Header
    Case #PB_EventType_MouseEnter, #PB_EventType_MouseMove
      Farbe = RGB(0,0,0)
      Farbe2 = #Col_Container
    Case #PB_EventType_LeftButtonDown
      End
     
  EndSelect
 
  StartDrawing(CanvasOutput(#Gadget_Exit))
  Box(0, 0, 60, 60, Farbe2)
  Line(3, 56, 54, -54, Farbe)
  Line(3, 4, 54, 54, Farbe)
  StopDrawing()
 
EndProcedure

Procedure DropShadow(Window)
 
  ; (WindowsAPI) - Generiert bei einem randlosen Fenster einen Schatten
 
  If IsWindow(Window)
    SetClassLongPtr_(WindowID(Window), #GCL_STYLE, #CS_DROPSHADOW)
  EndIf
 
EndProcedure
Procedure SystemButtons()
  ;Exit Button
  CanvasGadget(#Gadget_Exit, WindowWidth(0) - 61, 1, 60, 60)
  StartDrawing(CanvasOutput(#Gadget_Exit))
  Box(0, 0, 60, 60, #Col_Header)
  Line(3, 56, 54, -54, RGB(128, 128, 128))
  Line(3, 4, 54, 54, RGB(128, 128, 128))
  StopDrawing()
  BindGadgetEvent(#Gadget_Exit, @Event_Gadget_Exit())
 
  ;MINIMIZE BUTTON
  CreateImage(#Btn_Minimize, 40, 40)
  StartDrawing(ImageOutput(#Btn_Minimize))
  FillArea(1, 1, -1, #Col_Header)
  Line(0, 39, 40, 1, #Col_Text)
  StopDrawing()
  ImageGadget(#Img_BtnMinimize, WindowWidth(0)-110, 18, 40, 40, ImageID(#Btn_Minimize))
EndProcedure
Procedure main()
 
  Protected Text.s = "", x
 
  OpenWindow(#Wnd_Main, 0, 0, #Wnd_Width, #Wnd_Height, " ", #PB_Window_BorderLess|#PB_Window_ScreenCentered|#PB_Window_Invisible)
  SetWindowColor(#Wnd_Main, #Wnd_Color)
  DropShadow(#Wnd_Main)
 
  ;HEADER
  CreateImage(#Img_Header, WindowWidth(#Wnd_Main)-2, 60, 32, #Col_Header)
  StartDrawing(ImageOutput(#Img_Header))
  StopDrawing()
  ImageGadget(#Header, 1, 1, 0, 0, ImageID(#Img_Header))
  ;disable to make it possible: grab with LMB Down
  DisableGadget(#Header, #True)
 
  ;Set Window Title
  TextGadget(#Titel, 80, 14, 230, 30, "Dis./ or Reconnect LAN", #SS_CENTER)
  SetGadgetColor(#Titel, #PB_Gadget_BackColor, #Col_Header)
  SetGadgetColor(#Titel, #PB_Gadget_FrontColor, #Col_Text)
  SetGadgetFont(#Titel, FontID(#Fnt_SegoeUI16))
 
  ;Add all Gadgets here
  ContainerGadget(#Cnt_Window, 1, 62, WindowWidth(#Wnd_Main)-2, WindowHeight(#Wnd_Main)-89, #PB_Container_BorderLess)
  SetGadgetColor(#Cnt_Window, #PB_Gadget_BackColor, #Col_Container)
 
    ; Disconnect Internet
    ButtonGadget(#Btn_SwitchOff, 35, 60, 200, 60,"Disconnect Internet", 0)
    SetGadgetFont(#Btn_SwitchOff, FontID(#Fnt_SegoeUI12))
   
    ; Connect to Internet
    ButtonGadget(#Btn_SwitchOn, 265, 60, 200, 60,"Reconnect Internet", 0)
    SetGadgetFont(#Btn_SwitchOn, FontID(#Fnt_SegoeUI12))
   
  CloseGadgetList()

  SystemButtons()

  HideWindow(#Wnd_Main, #False)
 
EndProcedure

main()

Repeat
  Event = WaitWindowEvent()
  EventType = EventType()
 
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        ;Exit
        Case #Img_BtnExit
          End
         
        ;Minimize
        Case #Img_BtnMinimize
          If EventType = #PB_EventType_LeftClick
            SetWindowState(#Wnd_Main, #PB_Window_Minimize)
          EndIf
         
        ;Disconnect
        Case #Btn_SwitchOff
          If EventType = #PB_EventType_LeftClick
            ;Windows 7
            If InternetGetConnectedStateEx_(@lpdwFlags, @lpszConnectionName$, Len(lpszConnectionName$), #Null)
              RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=disabled",  "", #PB_Program_Hide)
            Else
            ;Windows 10
            If InternetGetConnectedStateEx_(@lpdwFlags, @lpszConnectionName$, Len(lpszConnectionName$), #Null)
              RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=disabled",  "", #PB_Program_Hide)           
            EndIf
          EndIf
        EndIf
         
        ;Reconnect   
        Case #Btn_SwitchOn
          If EventType = #PB_EventType_LeftClick
            ;Windows 7
            RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=enabled",  "", #PB_Program_Hide)
          Else
            ;Windows 10
            RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=enabled",  "", #PB_Program_Hide) 
          EndIf     
     
      EndSelect
     
    ;DRAG WITH MOUSE
    Case #WM_LBUTTONDOWN
      If WindowMouseX(#Wnd_Main) >= 0 And WindowMouseX(#Wnd_Main) <= WindowWidth(#Wnd_Main)-2 And WindowMouseY(#Wnd_Main) >= 0 And WindowMouseY(#Wnd_Main) <= 61
        SendMessage_(WindowID(#Wnd_Main), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
      EndIf
  EndSelect

ForEver
Ich hab bei einigen Leuten gefragt, da gehts leider nicht mit dem Code. von vorher.
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
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: wie LAN trennen unter Windows10

Beitrag von udg »

RSBasic hat geschrieben:Ich habe Home und da funktioniert es.
Danke fürs testen. Kurios, dass es bei vielen W10 Versionen nicht geht
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
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: wie LAN trennen unter Windows10

Beitrag von _JON_ »

Die API InternetGetConnectedStateEx_() gibt mir auch als Name "Lan-Verbindung" zurück.
Damit kann meine netsh.exe allerdings nix mit anfangen.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: wie LAN trennen unter Windows10

Beitrag von udg »

Ich bin gerade mal an einem W10 PC Professional. Dort geht das ganze nicht.
habe den Adapter mit dem Code Von RS Basic aus der Win Api mal ausgelesen. Diese gibt einen falschen Namen zurück.

Der Adapter heißt hier "ETHERNET", der Code jedoch schiebt ins Debugfenster den Namen "LAN-Verbindung"

Ich tippe, dass an dem Code da etwas nicht richtig den Namen ausliest?

hier mal der Code:

Code: Alles auswählen

EnableExplicit

Define lpdwFlags
Define lpszConnectionName$ = Space(255)

If InternetGetConnectedStateEx_(@lpdwFlags, @lpszConnectionName$, Len(lpszConnectionName$), #Null)
  Debug "Name der Verbindung: " + lpszConnectionName$
  If lpdwFlags & #INTERNET_CONNECTION_CONFIGURED
    Debug "Local system has a valid connection to the Internet, but it might or might not be currently connected."
  EndIf
  If lpdwFlags & #INTERNET_CONNECTION_OFFLINE
    Debug "Local system is in offline mode."
  EndIf
  If lpdwFlags & #INTERNET_RAS_INSTALLED
    Debug "Local system has RAS installed."
  EndIf
  If lpdwFlags & #INTERNET_CONNECTION_PROXY
    Debug "Local system uses a proxy server to connect to the Internet."
  EndIf
  If lpdwFlags & #INTERNET_CONNECTION_LAN
    Debug "Local system uses a local area network to connect to the Internet."
  EndIf
  If lpdwFlags & #INTERNET_CONNECTION_MODEM
    Debug "Local system uses a modem To connect To the Internet."
  EndIf
EndIf

spuckt mir dann leider einen Falschen Namen aus. Dieser Name ist aber wichtig damit ich die verbindung richtig auslese und trennen kann.
Wenn ich also hier im kompletten Tool code den Namen Ethernet von Hand eintrage, dann funktioniert das Tool mit W10 Professional.

Jemand eine Idee was man da ändern bzw noch anpassen muss?


folgenden Code benutz ich im SC:

Code: Alles auswählen

            If InternetGetConnectedStateEx_(@lpdwFlags, @lpszConnectionName$, Len(lpszConnectionName$), #Null)
              RunProgram("netsh.exe", " interface set interface name =" + #DQUOTE$ + lpszConnectionName$ + #DQUOTE$ + " admin=disabled",  "", #PB_Program_Hide)
            Else

dieser Flag: lpszConnectionName$ soll laut meinem Verständnis dafür benutzt werden.

Danke
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