界面:
import subprocess
from tkinter import *
from tkinter.messagebox import *
# 启动或禁用无线网卡
# netsh interface set interface 以太网 disabled/enabled
# os.system('netsh interface set interface 以太网 disabled')
# os.system('netsh interface set interface WLAN disabled')
from tkinter.ttk import Combobox
def setect_model(model):
setece_network = ent1.get()
if setece_network == '':
showerror(title='出错了', message='请先输入要操作的网卡')
else:
if model == '禁用':
sentence = 'netsh interface set interface '+setece_network+' disabled'
subprocess.Popen(sentence, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
showinfo(message=setece_network+'网卡禁用成功')
else:
sentence = 'netsh interface set interface ' + setece_network + ' enabled'
subprocess.Popen(sentence, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
showinfo(message=setece_network+'网卡启动成功')
def setect_network(network):
if network == 'WLAN':
ent1.delete(0, 'end')
ent1.insert(0, 'WLAN')
elif network == '以太网':
ent1.delete(0, 'end')
ent1.insert(0, '以太网')
def onekey(model):
if model == 'mod1':
# 一键启动WLAN关闭以太网
sentenceon = 'netsh interface set interface WLAN enabled'
sentenceoff = 'netsh interface set interface 以太网 disabled'
subprocess.Popen(sentenceon, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
subprocess.Popen(sentenceoff, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
showinfo(message='WLAN启动成功,以太网禁用成功')
elif model == 'mod2':
# 一键启动以太网关闭WLAN
sentenceon = 'netsh interface set interface 以太网 enabled'
sentenceoff = 'netsh interface set interface WLAN disabled'
subprocess.Popen(sentenceon, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
subprocess.Popen(sentenceoff, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
showinfo(message='以太网启动成功,WLAN禁用成功')
if __name__ == '__main__':
try:
tk = Tk()
tk.title('网卡禁用或启用程序')
tk.geometry("280x180+600+500")
lab1 = Label(text='请输入网卡名称')
ent1 = Entry()
lab2 = Label(text='请选择网卡')
but1 = Button(text='WLAN', command=lambda: setect_network('WLAN'))
but2 = Button(text='以太网', command=lambda: setect_network('以太网'))
lab3 = Label(text='请选择模式')
but3 = Button(text='禁 用', command=lambda: setect_model('禁用'))
but4 = Button(text='启 用', command=lambda: setect_model('启用'))
# comboxlist = Combobox(tk, textvariable='ff') # 初始化
# comboxlist["values"] = ("禁用", "启用")
# comboxlist.current(0)
pady_num = 7
lab1.grid(column=0, row=0, sticky='W', pady=pady_num)
ent1.grid(column=1, row=0, columnspan=2, sticky='W')
lab2.grid(column=0, row=1, sticky='W', pady=pady_num)
but1.grid(column=1, row=1)
but2.grid(column=2, row=1)
lab3.grid(column=0, row=2, sticky='W', pady=pady_num)
but3.grid(column=1, row=2)
but4.grid(column=2, row=2)
# 一键切换
lab4 = Label(text='一键切换模式')
but5 = Button(text='一键\nWLAN', command=lambda: onekey('mod1'))
but6 = Button(text='一键\n以太网', command=lambda: onekey('mod2'))
lab4.grid(column=0, row=3, sticky='W', pady=pady_num)
but5.grid(column=1, row=3)
but6.grid(column=2, row=3)
Button(text='退\n出', height=9, width=4, command=lambda: tk.quit()).grid(column=3, row=0, rowspan=4, padx=5, pady=4)
# comboxlist.grid(column=1, row=1)
tk.mainloop()
except Exception as e:
showerror(title='出错了', message=e)
打包pyinstaller -F -w dis_en_able_internet.py
用subprocess.Popen(sentence, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
而不是用os.system(sentence)
是因为去除打包后,执行禁开网卡命令时出现的系统黑框,同时也比os方式启动的迅速