Python编写炉石传说断网整活桌面工具源码(附下载可用exe程序)
程序员文章站
2022-07-03 09:09:20
...
实现思路:
1. 直接使用[baiipconfig/release]释放当前ip,然后再使用[ipconfig/renew]重新获取ip,从而实现断网重连的需求,奈何经过测试,断网重连之后,当场去世
2. 通过将指定程序加入到防火墙规则,开启/关闭规则,实现断网重连的需求,经过测试,可行
备注:
1. 需要关闭电脑管家等安全工具,否则会提示病毒
2. 首次使用,需要找到指定的软件的exe路径,并点击生成,默认断网(生成之后下次使用不用再次重复此步骤)
3. 脚本打包方法入口:跳转
代码如下:
from tkinter import *
from tkinter.filedialog import askopenfilename
import os
import tkinter
'''
断网重连工具下载:链接:https://pan.baidu.com/s/1R2jhdQPTuGB-gwIxMu_SHg 提取码:aw7s
'''
class Gui(object):
def __init__(self):
self.root = tkinter.Tk()
self.path = StringVar()
# 禁止拖动窗口大小
self.root.resizable(width=False, height=False)
# 强制显示在所有页面的最顶层
self.root.attributes("-topmost", True)
# 去掉边框
self.root.overrideredirect(1)
self.root.geometry("170x200+10+10")
# 选择路径
self.entry_yj = tkinter.Entry(master=self.root, textvariable=self.path, width=22)
self.entry_yj.grid(rowspan=2, columnspan=4)
# 按钮控件
Button(self.root, text="选择程序", command=self.select_path, width=10, relief=RIDGE).grid(row=2, column=1)
self.button_tj = tkinter.Button(master=self.root, text='生成', command=self.add,
relief=RIDGE, width=10, cursor='sizing')
self.button_tj.grid(row=2, column=2)
self.button_tj = tkinter.Button(master=self.root, text='断网', command=off,
relief=RIDGE, width=10, height=5, cursor='sizing')
self.button_tj.grid(row=3, column=1)
self.button_tj = tkinter.Button(master=self.root, text='联网', command=reconnection,
width=10, height=5, cursor='sizing', relief=RIDGE)
self.button_tj.grid(row=3, column=2)
self.button_tj = tkinter.Button(master=self.root, text='关闭工具', command=self.turn,
width=22, height=2, cursor='tcross', relief=RIDGE)
self.button_tj.grid(rowspan=4, columnspan=4)
self.root.mainloop()
def turn(self):
self.root.destroy()
def select_path(self):
path_ = askopenfilename()
self.path.set(path_)
return path_
def add(self):
# 需要将将文件路径的/替换为\,否则命令提示违规
add(self.entry_yj.get().replace('/', '\\'))
def add(path):
os.system(r'netsh advfirewall firewall add rule name="hh_ldp" dir=out'
r' program="{}" action=block'.format(path))
def off():
os.system('netsh advfirewall firewall set rule name="hh_ldp" new enable=yes')
def reconnection():
os.system('netsh advfirewall firewall set rule name="hh_ldp" new enable=no')
if __name__ == '__main__':
Gui()
上一篇: netsh 的常用命令