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.
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