forked from Autotest/uengine-runner
1.3.3初步
This commit is contained in:
parent
a80397ee9e
commit
9d1f3e8176
|
@ -97,6 +97,10 @@ pip3 uninstall ttkthemes
|
||||||
提 issue 最好,当然有些问题自己无法解决,请大佬 push 一下
|
提 issue 最好,当然有些问题自己无法解决,请大佬 push 一下
|
||||||
如果出现故障,尝试终端运行,如果是可以自行解决的问题,就**自行解决**,如果可以就**提 issues 并提供解决方案**,不行就**提 isscue 并提供程序和终端报错以及程序版本**
|
如果出现故障,尝试终端运行,如果是可以自行解决的问题,就**自行解决**,如果可以就**提 issues 并提供解决方案**,不行就**提 isscue 并提供程序和终端报错以及程序版本**
|
||||||
|
|
||||||
|
### 下载量
|
||||||
|
这里只统计蓝奏云的下载量,链接(每周更新一次):
|
||||||
|
[https://kdocs.cn/l/smrvazWGuKcY](https://kdocs.cn/l/smrvazWGuKcY)
|
||||||
|
|
||||||
### 已知问题
|
### 已知问题
|
||||||
![Error](https://storage.deepin.org/thread/202108101105396531_截图___tk__messagebox_20210810110449.png)
|
![Error](https://storage.deepin.org/thread/202108101105396531_截图___tk__messagebox_20210810110449.png)
|
||||||
部分 app 无法读取出图片,已知:
|
部分 app 无法读取出图片,已知:
|
||||||
|
|
195
main.py
195
main.py
|
@ -11,6 +11,7 @@
|
||||||
#################
|
#################
|
||||||
# 引入所需的库
|
# 引入所需的库
|
||||||
#################
|
#################
|
||||||
|
from genericpath import exists
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
@ -26,6 +27,7 @@ import tkinter as tk
|
||||||
import tkinter.ttk as ttk
|
import tkinter.ttk as ttk
|
||||||
import tkinter.messagebox as messagebox
|
import tkinter.messagebox as messagebox
|
||||||
import tkinter.filedialog as filedialog
|
import tkinter.filedialog as filedialog
|
||||||
|
import tkinter.simpledialog as simpledialog
|
||||||
from getxmlimg import getsavexml
|
from getxmlimg import getsavexml
|
||||||
from tkinter.constants import TOP
|
from tkinter.constants import TOP
|
||||||
|
|
||||||
|
@ -139,6 +141,7 @@ def DisabledAndEnbled(choose: "启动或者禁用")->"禁用或启动所有控
|
||||||
BtnUninstallApkBrowser.configure(state=a)
|
BtnUninstallApkBrowser.configure(state=a)
|
||||||
BtnUninstall.configure(state=a)
|
BtnUninstall.configure(state=a)
|
||||||
Btngeticon.configure(state=a)
|
Btngeticon.configure(state=a)
|
||||||
|
BtnSaveApk.configure(state=a)
|
||||||
|
|
||||||
# 需引入 subprocess
|
# 需引入 subprocess
|
||||||
# 运行系统命令并获取返回值
|
# 运行系统命令并获取返回值
|
||||||
|
@ -512,18 +515,135 @@ def get_desktop_path()->"获取用户桌面目录":
|
||||||
get = get.replace("$HOME", get_home()) # 则把其替换为用户目录(~)
|
get = get.replace("$HOME", get_home()) # 则把其替换为用户目录(~)
|
||||||
return get # 返回目录
|
return get # 返回目录
|
||||||
|
|
||||||
|
def SaveInstallUengineApp():
|
||||||
|
while True:
|
||||||
|
result = simpledialog.askstring(title="输入apk包名", prompt="请输入要获取的apk包名以便进行下一步操作")
|
||||||
|
if result == "" or result == None:
|
||||||
|
return
|
||||||
|
if os.path.exists("/data/uengine/data/data/app/{}-1".format(result)):
|
||||||
|
break
|
||||||
|
messagebox.showerror(title="错误", message="路径不存在,请重试!")
|
||||||
|
path = filedialog.asksaveasfilename(title="保存apk", filetypes=[("APK 文件", "*.apk"), ("所有文件", "*.*")], initialdir=json.loads(readtxt(get_home() + "/.config/uengine-runner/SaveApk.json"))["path"])
|
||||||
|
if path == "" or path == ():
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
shutil.copy("/data/uengine/data/data/app/{}-1/base.apk".format(result), path)
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/SaveApk.json", json.dumps({"path": os.path.dirname(path)}))
|
||||||
|
messagebox.showinfo(title="提示", message="提取完成!")
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
messagebox.showerror(title="错误", message=traceback.format_exc())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 获取用户主目录
|
# 获取用户主目录
|
||||||
def get_home()->"获取用户主目录":
|
def get_home()->"获取用户主目录":
|
||||||
return os.path.expanduser('~')
|
return os.path.expanduser('~')
|
||||||
|
|
||||||
|
def CleanAllUengineDesktopLink():
|
||||||
|
if messagebox.askokcancel(title="提示", message="你确定要删除所有的 uengine 快捷方式吗?"):
|
||||||
|
try:
|
||||||
|
shutil.rmtree("{}/.local/share/applications/uengine".format(get_home()))
|
||||||
|
os.mkdir("{}/.local/share/applications/uengine".format(get_home()))
|
||||||
|
messagebox.showinfo(title="提示", message="删除完毕!")
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
messagebox.showerror(title="错误", message=traceback.format_exc())
|
||||||
|
|
||||||
|
class AddNewUengineDesktopLink():
|
||||||
|
addTips = '''可以输入app的包名和Activity或通过浏览apk文件来获取包名和Activity
|
||||||
|
注意:如果是要删除只要输入包名即可'''
|
||||||
|
def ShowWindow():
|
||||||
|
global activityName
|
||||||
|
global packageName
|
||||||
|
message = tk.Toplevel()
|
||||||
|
|
||||||
|
tipsLabel = ttk.Label(message, text=AddNewUengineDesktopLink.addTips)
|
||||||
|
packageName = ttk.Combobox(message, width=30)
|
||||||
|
activityName = ttk.Combobox(message, width=30)
|
||||||
|
findApk = ttk.Button(message, text="浏览", command=AddNewUengineDesktopLink.FindApk)
|
||||||
|
controlFrame = ttk.Frame(message)
|
||||||
|
saveButton = ttk.Button(controlFrame, text="写入", command=AddNewUengineDesktopLink.SaveDesktopLink)
|
||||||
|
delButton = ttk.Button(controlFrame, text="删除", command=AddNewUengineDesktopLink.DelDesktopLink)
|
||||||
|
|
||||||
|
message.title("添加/删除 uengine 图标")
|
||||||
|
message.resizable(0, 0)
|
||||||
|
# get screen width and height
|
||||||
|
screen_width = message.winfo_screenwidth()
|
||||||
|
screen_height = message.winfo_screenheight()
|
||||||
|
# calculate position x and y coordinates 假设主窗口大小固定 570x236像素 ,设置窗口位置为屏幕中心。
|
||||||
|
winwith=570
|
||||||
|
winhigh=236
|
||||||
|
x = (screen_width/2) - (winwith/2)
|
||||||
|
y = (screen_height/2) - (winhigh/2)
|
||||||
|
message.geometry("+{}+{}".format(int(x), int(y)))
|
||||||
|
|
||||||
|
packageName["value"] = findApkNameHistory
|
||||||
|
activityName["value"] = findApkActivityHistory
|
||||||
|
|
||||||
|
tipsLabel.grid(row=0, column=0, columnspan=3)
|
||||||
|
packageName.grid(row=1, column=0)
|
||||||
|
activityName.grid(row=1, column=1)
|
||||||
|
findApk.grid(row=1, column=2)
|
||||||
|
controlFrame.grid(row=2, column=0, columnspan=3)
|
||||||
|
saveButton.grid(row=0, column=0)
|
||||||
|
delButton.grid(row=0, column=1)
|
||||||
|
|
||||||
|
message.mainloop()
|
||||||
|
|
||||||
|
def SaveDesktopLink():
|
||||||
|
if os.path.exists("{}/.local/share/applications/uengine/{}.desktop".format(get_home(), packageName.get())):
|
||||||
|
if not messagebox.askokcancel(title="提示", message="文件已存在,确定要覆盖吗?"):
|
||||||
|
return
|
||||||
|
global activityName
|
||||||
|
iconSavePath = "{}/.local/share/icons/hicolor/256x256/apps/{}.png".format(get_home(), packageName.get())
|
||||||
|
shutil.copy(programPath + "/defult.png", iconSavePath)
|
||||||
|
BuildUengineDesktop(packageName.get(), activityName, packageName.get(), iconSavePath,
|
||||||
|
"{}/.local/share/applications/uengine/{}.desktop".format(get_home(), packageName.get()))
|
||||||
|
BuildUengineDesktop(packageName.get(), activityName, packageName.get(), iconSavePath,
|
||||||
|
"{}/{}.desktop".format(get_desktop_path(), packageName.get()))
|
||||||
|
AddNewUengineDesktopLink.SaveHistory()
|
||||||
|
messagebox.showinfo(title="提示", message="创建完毕!")
|
||||||
|
|
||||||
|
def DelDesktopLink():
|
||||||
|
global packageName
|
||||||
|
if not os.path.exists("{}/.local/share/applications/uengine/{}.desktop".format(get_home(), packageName.get())):
|
||||||
|
messagebox.showerror(title="错误", message="此包名对应的uengine桌面快捷方式不存在!")
|
||||||
|
return
|
||||||
|
if not messagebox.askyesno(title="提示", message="你确定要删除吗?删除后将无法恢复!"):
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
os.remove("{}/.local/share/applications/uengine/{}.desktop".format(get_home(), packageName.get()))
|
||||||
|
AddNewUengineDesktopLink.SaveHistory()
|
||||||
|
messagebox.showinfo(title="提示", message="已删除")
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
messagebox.showerror(title="错误", message=traceback.format_exc())
|
||||||
|
|
||||||
|
def SaveHistory():
|
||||||
|
findApkNameHistory.append(packageName.get())
|
||||||
|
findApkActivityHistory.append(activityName.get())
|
||||||
|
packageName['value'] = findApkNameHistory
|
||||||
|
activityName['value'] = findApkActivityHistory
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/FindApkNameHistory.json", str(json.dumps(ListToDictionary(findApkNameHistory)))) # 将历史记录的数组转换为字典并写入
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json", str(json.dumps(ListToDictionary(findApkActivityHistory)))) # 将历史记录的数组转换为字典并写入
|
||||||
|
|
||||||
|
def FindApk():
|
||||||
|
path = filedialog.askopenfilename(title="选择apk", filetypes=[("APK 文件", "*.apk"), ("所有文件", "*.*")], initialdir=json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkName.json"))["path"])
|
||||||
|
if path == "" or path == ():
|
||||||
|
return
|
||||||
|
packageName.set(GetApkPackageName(path))
|
||||||
|
activityName.set(GetApkActivityName(path))
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/FindApkName.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# 程序信息
|
# 程序信息
|
||||||
###########################
|
###########################
|
||||||
programUrl = "https://gitee.com/gfdgd-xi/uengine-runner"
|
programUrl = "https://gitee.com/gfdgd-xi/uengine-runner"
|
||||||
version = "1.3.2"
|
version = "1.3.3"
|
||||||
goodRunSystem = "Linux(deepin/UOS)"
|
goodRunSystem = "Linux(deepin/UOS)"
|
||||||
aaptVersion = GetCommandReturn("aapt version")
|
aaptVersion = GetCommandReturn("aapt version")
|
||||||
about = ''' 一个基于 Python3 的 tkinter 制作的 uengine APK 安装器
|
about = ''' 一个基于 Python3 的 tkinter 制作的 uengine APK 运行器
|
||||||
|
|
||||||
版本 :{}
|
版本 :{}
|
||||||
|
|
||||||
|
@ -560,7 +680,13 @@ tips = ''' 新版本Deepin/UOS发布后,可以在应用商店安装部分
|
||||||
3、提取 apk 图标的 apk 路径以“安装 apk”那栏为准;
|
3、提取 apk 图标的 apk 路径以“安装 apk”那栏为准;
|
||||||
4、如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
4、如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
||||||
'''
|
'''
|
||||||
updateThingsString = '''V.1.3.2:
|
updateThingsString = '''V1.3.3:
|
||||||
|
※1、添加新版打包方式(deepin打包方式);
|
||||||
|
※2、支持创建/删除uengine图标;
|
||||||
|
※3、支持提取安装的apk;
|
||||||
|
4、修改菜单栏布局;
|
||||||
|
|
||||||
|
V.1.3.2:
|
||||||
※1、支持uengine数据重置;
|
※1、支持uengine数据重置;
|
||||||
※2、支持修改uengine网络桥接的启动状态;
|
※2、支持修改uengine网络桥接的启动状态;
|
||||||
※3、支持右键安装/卸载;
|
※3、支持右键安装/卸载;
|
||||||
|
@ -583,11 +709,9 @@ V1.2.3
|
||||||
|
|
||||||
V1.2.2
|
V1.2.2
|
||||||
1、对程序错误的显示更加人性化;
|
1、对程序错误的显示更加人性化;
|
||||||
2、对icon的获取方式进行了升级;
|
|
||||||
3、增加了注释、删除部分冗余代码。
|
|
||||||
'''
|
'''
|
||||||
title = "uengine 安装器 {}".format(version)
|
title = "uengine 运行器 {}".format(version)
|
||||||
updateTime = "2021年08月15日"
|
updateTime = "2021年08月18日"
|
||||||
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
||||||
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||||
iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0])
|
iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0])
|
||||||
|
@ -610,20 +734,30 @@ if not os.path.exists(get_home() + "/.config/uengine-runner"): # 如果没有
|
||||||
os.mkdir(get_home() + "/.config/uengine-runner") # 创建配置文件夹
|
os.mkdir(get_home() + "/.config/uengine-runner") # 创建配置文件夹
|
||||||
if not os.path.exists(get_home() + "/.config/uengine-runner/FindApkHistory.json"): # 如果没有配置文件
|
if not os.path.exists(get_home() + "/.config/uengine-runner/FindApkHistory.json"): # 如果没有配置文件
|
||||||
write_txt(get_home() + "/.config/uengine-runner/FindApkHistory.json", json.dumps({})) # 创建配置文件
|
write_txt(get_home() + "/.config/uengine-runner/FindApkHistory.json", json.dumps({})) # 创建配置文件
|
||||||
|
if not os.path.exists(get_home() + "/.config/uengine-runner/FindApkNameHistory.json"): # 如果没有配置文件
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/FindApkNameHistory.json", json.dumps({})) # 创建配置文件
|
||||||
|
if not os.path.exists(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json"): # 如果没有配置文件
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json", json.dumps({})) # 创建配置文件
|
||||||
if not os.path.exists(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json"): # 如果没有配置文件
|
if not os.path.exists(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json"): # 如果没有配置文件
|
||||||
write_txt(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json", json.dumps({})) # 创建配置文件
|
write_txt(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json", json.dumps({})) # 创建配置文件
|
||||||
|
if not os.path.exists(get_home() + "/.config/uengine-runner/FindApkName.json"): # 如果没有配置文件
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/FindApkName.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
||||||
if not os.path.exists(get_home() + "/.config/uengine-runner/FindApk.json"): # 如果没有配置文件
|
if not os.path.exists(get_home() + "/.config/uengine-runner/FindApk.json"): # 如果没有配置文件
|
||||||
write_txt(get_home() + "/.config/uengine-runner/FindApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
write_txt(get_home() + "/.config/uengine-runner/FindApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
||||||
if not os.path.exists(get_home() + "/.config/uengine-runner/FindUninstallApk.json"): # 如果没有配置文件
|
if not os.path.exists(get_home() + "/.config/uengine-runner/FindUninstallApk.json"): # 如果没有配置文件
|
||||||
write_txt(get_home() + "/.config/uengine-runner/FindUninstallApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
write_txt(get_home() + "/.config/uengine-runner/FindUninstallApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
||||||
if not os.path.exists(get_home() + "/.config/uengine-runner/SaveApkIcon.json"): # 如果没有配置文件
|
if not os.path.exists(get_home() + "/.config/uengine-runner/SaveApkIcon.json"): # 如果没有配置文件
|
||||||
write_txt(get_home() + "/.config/uengine-runner/SaveApkIcon.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
write_txt(get_home() + "/.config/uengine-runner/SaveApkIcon.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
||||||
|
if not os.path.exists(get_home() + "/.config/uengine-runner/SaveApk.json"): # 如果没有配置文件
|
||||||
|
write_txt(get_home() + "/.config/uengine-runner/SaveApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# 设置变量
|
# 设置变量
|
||||||
###########################
|
###########################
|
||||||
findApkHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkHistory.json")).values())
|
findApkHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkHistory.json")).values())
|
||||||
fineUninstallApkHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json")).values())
|
fineUninstallApkHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json")).values())
|
||||||
|
findApkNameHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkNameHistory.json")).values())
|
||||||
|
findApkActivityHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json")).values())
|
||||||
|
|
||||||
# add sub window
|
# add sub window
|
||||||
#添加窗口开启关闭开关,防止重复开启
|
#添加窗口开启关闭开关,防止重复开启
|
||||||
|
@ -750,7 +884,8 @@ BtnInstall = ttk.Button(FrmInstall, text="安装", command=Button3Install)
|
||||||
BtnShowUengineApp = ttk.Button(window, text="打开 uengine 应用列表", command=Button5Click)
|
BtnShowUengineApp = ttk.Button(window, text="打开 uengine 应用列表", command=Button5Click)
|
||||||
BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text="浏览", command=BtnFindUninstallApkClk)
|
BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text="浏览", command=BtnFindUninstallApkClk)
|
||||||
BtnUninstall = ttk.Button(FrmUninstall, text="卸载", command=ButtonClick8)
|
BtnUninstall = ttk.Button(FrmUninstall, text="卸载", command=ButtonClick8)
|
||||||
Btngeticon = ttk.Button(window, text="保存图标", command=SaveIconToOtherPath)
|
Btngeticon = ttk.Button(FrmInstall, text="保存图标", command=SaveIconToOtherPath)
|
||||||
|
BtnSaveApk = ttk.Button(FrmInstall, text="保存apk", command=SaveInstallUengineApp)
|
||||||
# 设置菜单栏
|
# 设置菜单栏
|
||||||
menu = tk.Menu(window, background="white")
|
menu = tk.Menu(window, background="white")
|
||||||
|
|
||||||
|
@ -758,6 +893,10 @@ programmenu = tk.Menu(menu, tearoff=0, background="white") # 设置“程序”
|
||||||
uengine = tk.Menu(menu, tearoff=0, background="white")
|
uengine = tk.Menu(menu, tearoff=0, background="white")
|
||||||
help = tk.Menu(menu, tearoff=0, background="white") # 设置“帮助”菜单栏
|
help = tk.Menu(menu, tearoff=0, background="white") # 设置“帮助”菜单栏
|
||||||
|
|
||||||
|
uengineService = tk.Menu(uengine)
|
||||||
|
uengineInternet = tk.Menu(uengine)
|
||||||
|
uengineIcon = tk.Menu(uengine)
|
||||||
|
|
||||||
menu.add_cascade(label="程序", menu=programmenu)
|
menu.add_cascade(label="程序", menu=programmenu)
|
||||||
menu.add_cascade(label="uengine", menu=uengine)
|
menu.add_cascade(label="uengine", menu=uengine)
|
||||||
menu.add_cascade(label="关于", menu=help)
|
menu.add_cascade(label="关于", menu=help)
|
||||||
|
@ -766,29 +905,38 @@ programmenu.add_command(label="清空软件历史记录", command=CleanProgramHi
|
||||||
programmenu.add_separator() # 设置分界线
|
programmenu.add_separator() # 设置分界线
|
||||||
programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序”
|
programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序”
|
||||||
|
|
||||||
uengine.add_command(label="发送 uengine 应用列表到桌面", command=SendUengineAndroidListForDesktop)
|
uengine.add_cascade(label="uengine 服务", menu=uengineService)
|
||||||
uengine.add_command(label="发送 uengine 应用列表到启动器", command=SendUengineAndroidListForLauncher)
|
uengine.add_cascade(label="uengine 网络桥接", menu=uengineInternet)
|
||||||
uengine.add_separator()
|
uengine.add_cascade(label="uengine 快捷方式", menu=uengineIcon)
|
||||||
uengine.add_command(label="启用 uengine 服务", command=StartUengine)
|
|
||||||
uengine.add_command(label="关闭 uengine 服务", command=StopUengine)
|
|
||||||
uengine.add_command(label="重启 uengine 服务", command=UengineRestart)
|
|
||||||
uengine.add_separator()
|
|
||||||
uengine.add_command(label="启用 uengine 网络桥接", command=UengineBridgeStart)
|
|
||||||
uengine.add_command(label="关闭 uengine 网络桥接", command=UengineBridgeStop)
|
|
||||||
uengine.add_command(label="重启 uengine 网络桥接", command=UengineBridgeRestart)
|
|
||||||
uengine.add_command(label="加载 uengine 网络桥接", command=UengineBridgeReload)
|
|
||||||
uengine.add_command(label="强制加载 uengine 网络桥接", command=UengineBridgeForceReload)
|
|
||||||
|
|
||||||
uengine.add_separator()
|
|
||||||
uengine.add_command(label="清空 uengine 数据", command=BackUengineClean)
|
uengine.add_command(label="清空 uengine 数据", command=BackUengineClean)
|
||||||
|
|
||||||
help.add_command(label="程序官网", command=OpenProgramURL) # 设置“程序官网”项
|
help.add_command(label="程序官网", command=OpenProgramURL) # 设置“程序官网”项
|
||||||
help.add_command(label="帮助", command=showhelp) # 设置“关于这个程序”项
|
help.add_command(label="帮助", command=showhelp) # 设置“关于这个程序”项
|
||||||
|
|
||||||
|
uengineService.add_command(label="启用 uengine 服务", command=StartUengine)
|
||||||
|
uengineService.add_command(label="关闭 uengine 服务", command=StopUengine)
|
||||||
|
uengineService.add_command(label="重启 uengine 服务", command=UengineRestart)
|
||||||
|
|
||||||
|
uengineInternet.add_command(label="启用 uengine 网络桥接", command=UengineBridgeStart)
|
||||||
|
uengineInternet.add_command(label="关闭 uengine 网络桥接", command=UengineBridgeStop)
|
||||||
|
uengineInternet.add_command(label="重启 uengine 网络桥接", command=UengineBridgeRestart)
|
||||||
|
uengineInternet.add_command(label="加载 uengine 网络桥接", command=UengineBridgeReload)
|
||||||
|
uengineInternet.add_command(label="强制加载 uengine 网络桥接", command=UengineBridgeForceReload)
|
||||||
|
|
||||||
|
uengineIcon.add_command(label="发送 uengine 应用列表到桌面", command=SendUengineAndroidListForDesktop)
|
||||||
|
uengineIcon.add_command(label="发送 uengine 应用列表到启动器", command=SendUengineAndroidListForLauncher)
|
||||||
|
uengineIcon.add_separator()
|
||||||
|
uengineIcon.add_command(label="添加/删除指定的 uengine 快捷方式", command=AddNewUengineDesktopLink.ShowWindow)
|
||||||
|
uengineIcon.add_separator()
|
||||||
|
uengineIcon.add_command(label="清空所有 uengine 快捷方式", command=CleanAllUengineDesktopLink)
|
||||||
|
|
||||||
menu.configure(activebackground="dodgerblue")
|
menu.configure(activebackground="dodgerblue")
|
||||||
help.configure(activebackground="dodgerblue")
|
help.configure(activebackground="dodgerblue")
|
||||||
uengine.configure(activebackground="dodgerblue")
|
uengine.configure(activebackground="dodgerblue")
|
||||||
programmenu.configure(activebackground="dodgerblue")
|
programmenu.configure(activebackground="dodgerblue")
|
||||||
|
uengineService.configure(activebackground="dodgerblue")
|
||||||
|
uengineInternet.configure(activebackground="dodgerblue")
|
||||||
|
uengineIcon.configure(activebackground="dodgerblue")
|
||||||
|
|
||||||
# 设置控件
|
# 设置控件
|
||||||
ComboUninstallPath['value'] = fineUninstallApkHistory
|
ComboUninstallPath['value'] = fineUninstallApkHistory
|
||||||
|
@ -826,7 +974,8 @@ BtnUninstall.grid(row=0, column=1)
|
||||||
|
|
||||||
BtnShowUengineApp.grid(row=5, column=0,sticky= tk.W,padx=3,pady=2)
|
BtnShowUengineApp.grid(row=5, column=0,sticky= tk.W,padx=3,pady=2)
|
||||||
|
|
||||||
Btngeticon.grid(row=3, column=1,sticky= tk.W,padx=3,pady=2)
|
Btngeticon.grid(row=1, column=0,sticky= tk.W,padx=3,pady=2)
|
||||||
|
BtnSaveApk.grid(row=1, column=1,sticky= tk.W,padx=3,pady=2)
|
||||||
|
|
||||||
window.pack()
|
window.pack()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue