├── README.md ├── config └── pass.txt ├── image ├── head.jpg ├── icon.ico └── kaka.gif └── 一键Wifi小助手.py /README.md: -------------------------------------------------------------------------------- 1 | Wifi_Assistant 2 | ============== 3 | 4 | Wifi Assistant,即一键 Wifi 小助手,是基于 Tkinker GUI 的简单小工具,用 Windows cmd 的命令开启和关闭 Wifi。 5 | 6 | 使用环境:Windows 7 python 2.7 7 | 8 | 涉及的 Python 包:Tkinker PIL subprocess os sys 9 | 10 | 注意:请将文件夹置于英文目录路径下 11 | 12 | 使用时,务必按照 cmd 开启 wifi 的操作,第一次启动时进入网络和共享中心的更改适配器设置,选择一个可以上网的连接,共享给 Wifi 的无线连接用,默认情况下可能名为“无线连接2”。 13 | 14 | 15 | -------------------------------------------------------------------------------- /config/pass.txt: -------------------------------------------------------------------------------- 1 | ACM2 2 | 12344321 -------------------------------------------------------------------------------- /image/head.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AngryHacker/Wifi_Assistant/88ee51fa7f2e65c2ab5523ab6f6720905bd85c46/image/head.jpg -------------------------------------------------------------------------------- /image/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AngryHacker/Wifi_Assistant/88ee51fa7f2e65c2ab5523ab6f6720905bd85c46/image/icon.ico -------------------------------------------------------------------------------- /image/kaka.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AngryHacker/Wifi_Assistant/88ee51fa7f2e65c2ab5523ab6f6720905bd85c46/image/kaka.gif -------------------------------------------------------------------------------- /一键Wifi小助手.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | __author__ = 'AngryRookie' 3 | 4 | from Tkinter import * 5 | from PIL import Image, ImageTk 6 | import os 7 | import subprocess 8 | import sys 9 | 10 | #获得当前脚本所在目录 11 | def getpwd(): 12 | pwd = sys.path[0] 13 | if os.path.isfile(pwd): 14 | pwd = os.path.dirname(pwd) 15 | return pwd 16 | 17 | #窗口主体 18 | class App(): 19 | def __init__(self, master): 20 | 21 | #标题 22 | dirname = getpwd() + '\image\\'; 23 | image = Image.open(dirname + 'head.jpg') 24 | photo = ImageTk.PhotoImage(image) 25 | self.top = Label(image = photo, width = 480, height = 100) 26 | self.top.image = photo 27 | self.top.grid(row = 0,column = 0, columnspan = 6) 28 | 29 | #名称标签 30 | font = "Times 10" 31 | self.nlabel = Label(text = '名称:',height = 2,font = font) 32 | self.nlabel.grid(row = 1, column = 0,sticky = E,pady = 20) 33 | 34 | #密码标签 35 | self.plabel = Label(text = '密码:',height = 2,font = font) 36 | self.plabel.grid(row = 2, column = 0,sticky = E) 37 | 38 | # Wifi 名称 和 密码 输入框 39 | #获取用户上一次最后设置的名称和密码 40 | dirname2 = getpwd() + '\config\\'; 41 | file = open(dirname2 + 'pass.txt','r') 42 | c1 = file.readline() 43 | c2 = file.readline() 44 | c1 = c1.strip('\n') 45 | c2 = c2.strip('\n') 46 | file.close() 47 | v1 = StringVar() 48 | v2 = StringVar() 49 | v1.set(c1) 50 | v2.set(c2) 51 | vcmd = (master.register(self.OnValidate),'%S') 52 | self.nentry = Entry(master,textvariable = v1) 53 | self.nentry.grid(row = 1, column = 1, columnspan = 3,sticky = W,padx = 5) 54 | self.pentry = Entry(master,textvariable = v2, validate="key", validatecommand=vcmd) 55 | self.pentry.grid(row = 2, column = 1, columnspan = 3,sticky = W,padx = 5) 56 | self.name = self.nentry.get() 57 | self.password = self.pentry.get() 58 | 59 | #右侧图片 60 | photo2 = PhotoImage(file = dirname + 'kaka.gif') 61 | self.right = Label(master, image = photo2,padx = 500) 62 | self.right.photo = photo2 63 | self.right.grid(row = 1, column = 3, rowspan = 2, columnspan = 3,sticky = S,pady = 5) 64 | 65 | #启动按钮 66 | font1 = "Helvetica 12 bold" 67 | self.start = Button(master, text = '启动', command = self.start, width = 6, height = 2, font = font1) 68 | self.start.grid(row = 4, column = 0,rowspan = 3, columnspan = 2, sticky = E, padx = 40, pady = 10) 69 | 70 | #停止按钮 71 | self.stop = Button(master, text = '停止',command = self.stop, width = 6, height = 2, font = font1) 72 | self.stop.grid(row = 4, column = 2,rowspan = 3, columnspan = 2, sticky = W,padx = 20, pady = 10) 73 | 74 | #状态栏 75 | font2 = "Helvetica 10 bold" 76 | self.state = Label(master, text = '状态:', font = font2) 77 | self.state.grid(row = 7, column = 0, sticky = E) 78 | 79 | self.s = StringVar() 80 | self.s.set("尚未启动 Wifi ...") 81 | self.state = Label(master, textvariable = self.s, font = font2) 82 | self.state.grid(row = 7, column = 1, columnspan = 2, sticky = W) 83 | 84 | #声明 85 | font3 = "Times 10" 86 | ending = '\n 声明:本软件最终解释权归作者 AngryRookie 所有!\n软件虽小,bug很多!请小伙伴们好好对待它,不要把它玩坏了!\n 联系方式:QQ: 243695261 微博请粉:@涯_锦城' 87 | self.end = Label(master, text = ending, font = font3) 88 | self.end.grid(row = 8, column = 0, sticky = E, rowspan = 2, columnspan = 5) 89 | 90 | 91 | 92 | #打开Wifi 93 | def start(self): 94 | dirname = getpwd() + '\config\\'; 95 | 96 | #检测 Wifi 名称 和密码有无修改 97 | if str(self.nentry.get()) == str(self.name) and str(self.pentry.get()) == str(self.password) : 98 | command = "netsh wlan start hostednetwork" + ' >null' 99 | os.system(command) 100 | self.s.set('Wifi 已启动!') 101 | else: 102 | self.name = self.nentry.get() 103 | self.password = self.pentry.get() 104 | 105 | #弹出密码设置不正确窗口 106 | if len(self.password) < 8: 107 | top = Toplevel() 108 | top.title("Invalid Password!") 109 | top.geometry('150x80') 110 | top.maxsize(width = 150,height = 80) 111 | top.minsize(width = 150,height = 80) 112 | 113 | font = "Times 10 bold" 114 | about = "密码应该至少8位!" 115 | msg = Message(top, text = about,font = font,justify=LEFT,anchor=E) 116 | msg.pack() 117 | 118 | font = "Times 10" 119 | button = Button(top, text="确定",command=top.destroy,width = 4,height = 3,font = font) 120 | button.pack() 121 | return 122 | #将修改的名称和密码写入文件 123 | file = open(dirname + 'pass.txt','w') 124 | file.write("%s\n%s" % (self.name, self.password)) 125 | file.close() 126 | command1 = "netsh wlan set hostednetwork mode=allow ssid=" + self.name + " key=" + self.password 127 | command2 = "netsh wlan start hostednetwork" 128 | command = command1 + ' >null' + '&' + command2 + ' >null' 129 | #两种方式运行开启命令,第一种为接下来的第一行,第二种为接下来的第二行和第三行 130 | os.system(command) #使用 python os 模块 131 | #proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE) #使用子进程 132 | #stdout, stderr = proc.communicate(command) 133 | self.s.set('Wifi 已启动!') 134 | 135 | #关闭Wifi 136 | def stop(self): 137 | command = "netsh wlan stop hostednetwork" + ' >null' 138 | os.system(command) 139 | #proc = subprocess.Popen('cmd.exe', stdin = subprocess.PIPE, stdout = subprocess.PIPE) 140 | #stdout, stderr = proc.communicate(command) 141 | self.s.set('Wifi 已停止!') 142 | 143 | #检验用户输入,必须为数字 144 | def OnValidate(self,S): 145 | flag = True 146 | for x in S: 147 | if not x.isdigit(): 148 | flag = False 149 | return flag 150 | 151 | 152 | 153 | 154 | root = Tk() 155 | root.title('一键Wifi小助手') 156 | root.geometry('480x380') 157 | root.iconbitmap(getpwd() + '\image\\' + 'icon.ico') 158 | root.maxsize(width = 480,height = 380) 159 | root.minsize(width = 480,height = 380) 160 | 161 | app = App(root) 162 | 163 | mainloop() 164 | 165 | 166 | 167 | 168 | --------------------------------------------------------------------------------