From 3aa23d16358fc4a776171b19f22a9d3cc823ce61 Mon Sep 17 00:00:00 2001
From: gfdgd_xi <3025613752@qq.com>
Date: Sun, 10 Jul 2022 07:50:49 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A51.6.0=E6=A0=BC=E5=B1=80?=
=?UTF-8?q?=E5=BD=A2=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
DisabledOpengl.reg | Bin 0 -> 212 bytes
EnabledOpengl.reg | Bin 0 -> 204 bytes
InstallMsxml.py | 41 +++++++++++
InstallOther.py | 48 ++++++++++++
deb/DEBIAN/control | 4 +-
deb/DEBIAN/postinst | 3 +-
deepin-wine-runner-update-bug | 133 +++++++++++++++++++++++++++++++++
information.json | 10 ++-
main.py | 134 +++++++++++++++++++++++++++++-----
窗体透明度设置工具.exe | Bin 0 -> 664576 bytes
10 files changed, 352 insertions(+), 21 deletions(-)
create mode 100644 DisabledOpengl.reg
create mode 100644 EnabledOpengl.reg
create mode 100755 InstallMsxml.py
create mode 100644 InstallOther.py
create mode 100755 deepin-wine-runner-update-bug
create mode 100644 窗体透明度设置工具.exe
diff --git a/DisabledOpengl.reg b/DisabledOpengl.reg
new file mode 100644
index 0000000000000000000000000000000000000000..868bd2a0c92e2973c68f5f00a3085d2cc6bd9d5d
GIT binary patch
literal 212
zcmXwzOA5k35Cv;3c!!V!h!9-5Qb7=0#2=y}qEWI*AQ6I>S8GOOXu9h?`b~e{J4z~U
z)O55Y
?vcbGAWDnzu*f>{v(tC
literal 0
HcmV?d00001
diff --git a/EnabledOpengl.reg b/EnabledOpengl.reg
new file mode 100644
index 0000000000000000000000000000000000000000..3a0d3969e90ce0f6b391e3eb248e79d12296dbd1
GIT binary patch
literal 204
zcmX|*K?=e^5CrQi_=k`Oh#($4sUQd*qESReM5F8_fkX&?UagHF%P>>jY|nh&I|3y)
zDq0#6G727Q4Nq!bDs$Z+RdT{szt#, 为什么您不喜欢熊出没和阿布呢
Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner
Architecture: all
Priority: optional
-Depends: python3, python3-tk, python3-pip, python3-pil, python3-pil.imagetk, python3-pyquery, deepin-terminal, aria2, curl
+Depends: python3, python3-tk, python3-pip, python3-pil, python3-pil.imagetk, python3-pyquery, deepin-terminal, aria2, curl, unrar, unzip, python3-requests
Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer
Description: gfdgd xi 制作的 wine 运行器
diff --git a/deb/DEBIAN/postinst b/deb/DEBIAN/postinst
index 187aaab..11fd17b 100755
--- a/deb/DEBIAN/postinst
+++ b/deb/DEBIAN/postinst
@@ -1,5 +1,6 @@
# !/bin/sh
-python3 -m pip install --upgrade ttkthemes -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
+python3 -m pip install --upgrade ttkthemes -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
python3 -m pip install --upgrade ttkbootstrap -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
+python3 -m pip install --upgrade easygui -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 向服务器返回安装数加1(不显示内容且忽略错误)
curl http://120.25.153.144/spark-deepin-wine-runner/Install.php?Version=1.5.3 -s > /dev/null | true
diff --git a/deepin-wine-runner-update-bug b/deepin-wine-runner-update-bug
new file mode 100755
index 0000000..a0756a8
--- /dev/null
+++ b/deepin-wine-runner-update-bug
@@ -0,0 +1,133 @@
+#!/usr/bin/env python3
+import os
+import json
+import base64
+import requests
+import ttkthemes
+import traceback
+import webbrowser
+import tkinter as tk
+import tkinter.ttk as ttk
+import tkinter.messagebox as messagebox
+import urllib.parse as parse
+
+# 读取文本文档
+def readtxt(path: "路径")->"读取文本文档":
+ f = open(path, "r") # 设置文件对象
+ str = f.read() # 获取内容
+ f.close() # 关闭文本对象
+ return str # 返回结果
+
+def Update(name, stars, contact, things, version):
+ # post 内容
+ data = {
+ "Name": name,
+ "Starts": stars,
+ "Contact": contact,
+ "Things": things,
+ "Version": version
+ }
+ try:
+ messagebox.showinfo(message=requests.post(parse.unquote(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3NwYXJrLWRlZXBpbi13aW5lLXJ1bm5lci9idWcvdXBsb2FkLnBocA==").decode("utf-8")), data=data).text)
+ except:
+ traceback.print_exc()
+ messagebox.showerror(title="错误", message="服务器疑似出现错误,可以进行以下尝试:①多尝试几次;②使用其他反馈途径\n错误信息:{}".format(traceback.format_exc()))
+
+def UpdateButtonClick():
+ #判断是否为空
+ if nameThings.get() == "" or starValue.get() == "" or contactThings.get() == "" or updateThings.get(1.0, "end").replace(" ", "").replace("\n", "") == "":
+ messagebox.showerror(title="错误", message="反馈信息未填写完整!")
+ return
+ Update(name=nameThings.get(), stars=starValue.get(), contact=contactThings.get(), things=updateThings.get(1.0, "end"), version=version)
+
+def OpenGiteeIssues():
+ webbrowser.open_new_tab("https://gitee.com/gfdgd-xi/deep-wine-runner/issues")
+
+def OpenGithubIssues():
+ webbrowser.open_new_tab("https://github.com/gfdgd-xi/deep-wine-runner/issues")
+
+def OpenGitlinkIssues():
+ webbrowser.open_new_tab("https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner/issues")
+
+# 获取用户主目录
+def get_home()->"获取用户主目录":
+ return os.path.expanduser('~')
+
+###########################
+# 程序信息
+###########################
+iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0])
+programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
+information = json.loads(readtxt(programPath + "/information.json"))
+version = information["Version"]
+
+###########################
+# 窗口创建
+###########################
+# 读取主题
+try:
+ theme = not ("dark" in readtxt(get_home() + "/.gtkrc-2.0") and "gtk-theme-name=" in readtxt(get_home() + "/.gtkrc-2.0"))
+except:
+ print("主题读取错误,默认使用浅色主题")
+ theme = True
+if theme:
+ window = tk.Tk()
+ themes = ttkthemes.ThemedStyle(window)
+ themes.set_theme("breeze")
+else:
+ import ttkbootstrap
+ style = ttkbootstrap.Style(theme="darkly")
+ window = style.master # 创建窗口
+win = ttk.Frame()
+
+starValue = tk.StringVar()
+starValue.set("5分")
+
+name = ttk.Label(win, text="你的昵称:")
+nameThings = ttk.Entry(win, width=25)
+
+contact = ttk.Label(win, text="联系方式(电子邮箱):")
+contactThings = ttk.Entry(win, width=25)
+
+star = ttk.Label(win, text="评分:")
+starMenu = ttk.OptionMenu(win, starValue, "5分", "5分", "4分", "3分", "2分", "1分")
+
+updateThingsTips = ttk.Label(win, text="反馈内容(支持 Markdown 格式):")
+updateThings = tk.Text(win, width=100)
+
+otherUpload = ttk.Frame(win)
+# 所属内容
+tips = ttk.Label(otherUpload, text="如果无法正常反馈,可以用其他方式反馈:")
+giteeButton = ttk.Button(otherUpload, text="Gitee Issues", command=OpenGiteeIssues)
+githubButton = ttk.Button(otherUpload, text="Github Issues", command=OpenGithubIssues)
+gitlinkButton = ttk.Button(otherUpload, text="Github Issues", command=OpenGitlinkIssues)
+
+updateButton = ttk.Button(win, text="提交", command=UpdateButtonClick)
+
+# 设置窗口
+window.title("Wine 运行器 {} 问题/建议反馈".format(version))
+window.resizable(0, 0)
+window.iconphoto(False, tk.PhotoImage(file=iconPath))
+
+tips.grid(row=0, column=0)
+giteeButton.grid(row=0, column=1)
+githubButton.grid(row=0, column=2)
+gitlinkButton.grid(row=0, column=3)
+
+name.grid(row=0, column=0)
+nameThings.grid(row=0, column=1)
+
+contact.grid(row=0, column=2)
+contactThings.grid(row=0, column=3)
+
+star.grid(row=0, column=4)
+starMenu.grid(row=0, column=5)
+
+updateThingsTips.grid(row=1, column=0, columnspan=2)
+updateThings.grid(row=2, column=0, columnspan=6)
+
+otherUpload.grid(row=3, column=0, columnspan=4, sticky=tk.W)
+updateButton.grid(row=3, column=5)
+
+win.pack(expand="yes", fill="both")
+window.mainloop()
\ No newline at end of file
diff --git a/information.json b/information.json
index 124e3d9..d48f0d7 100644
--- a/information.json
+++ b/information.json
@@ -1,3 +1,11 @@
{
- "Version": "1.5.3"
+ "Version": "1.6.0",
+ "Thank": [
+ "@a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
+ "@zhangs https://bbs.deepin.org/post/227948",
+ "@gtjmaster https://bbs.deepin.org/post/225509",
+ "@统信UCARE服务 https://mp.weixin.qq.com/s/iOdfNv6phc8F4inackFFTw",
+ "",
+ "可以从上面的各种解决方案更好的学习 Wine 生态适配,也可以看 deepin 论坛板块 https://bbs.deepin.org/module/detail/116 进行学习,最后也向各位有进行 Wine 生态适配的大佬进行由衷的更新!"
+ ]
}
\ No newline at end of file
diff --git a/main.py b/main.py
index c9e3272..7db0923 100755
--- a/main.py
+++ b/main.py
@@ -10,14 +10,13 @@
#################
# 引入所需的库
#################
-from asyncore import read
-from email import message
import os
-from sqlite3 import TimeFromTicks
import sys
import time
import json
import shutil
+import easygui
+import requests
import threading
import traceback
import ttkthemes
@@ -100,9 +99,10 @@ def DisableButton(things):
e1.configure(state=a[things])
e2.configure(state=a[things])
o1.configure(state=a[things])
- winetricksOpen.configure(state=a[things])
+ #winetricksOpen.configure(state=a[things])
getProgramIcon.configure(state=a[things])
uninstallProgram.configure(state=a[things])
+ trasButton.configure(state=a[things])
def CheckProgramIsInstall(program):
return not bool(os.system(f"which '{program}'"))
@@ -361,9 +361,10 @@ def RunWinetricks():
if not setting["Debug"]:
option += "WINEDEBUG=-all "
if setting["TerminalOpen"]:
- res = subprocess.Popen([f"'{programPath}/launch.sh' deepin-terminal -C \"WINEPREFIX='" + option + wineBottonPath + "' winetricks\""], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ res = subprocess.Popen([f"'{programPath}/launch.sh' deepin-terminal -C \"WINEPREFIX='{wineBottonPath}' {option} WINE=" + subprocess.getoutput(f"which {wine[o1_text.get()]}").replace(" ", "").replace("\n", "") + " winetricks --gui\" --keep-open"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
else:
- res = subprocess.Popen(["WINEPREFIX='" + option + wineBottonPath + "' winetricks"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ res = subprocess.Popen([f"WINEPREFIX='{wineBottonPath}' {option} WINE='" + subprocess.getoutput(f"which {wine[o1_text.get()]}").replace(" ", "").replace("\n", "") + "' winetricks --gui"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ #res = subprocess.Popen(["WINEPREFIX='" + option + wineBottonPath + "' winetricks"], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# 清空文本框内容
returnText.config(state=tk.NORMAL)
returnText.delete(1.0, "end")
@@ -407,6 +408,15 @@ def InstallVisualStudioCPlusPlus():
os.system(f"'{programPath}/launch.sh' deepin-terminal -C \"'{programPath}/InstallVisualCPlusPlus.py' '{wineBottonPath}' {wine[o1_text.get()]}\" --keep-open")
DisableButton(False)
+def InstallMSXML():
+ DisableButton(True)
+ if e1.get() == "":
+ wineBottonPath = setting["DefultBotton"]
+ else:
+ wineBottonPath = e1.get()
+ os.system(f"'{programPath}/launch.sh' deepin-terminal -C \"'{programPath}/InstallMsxml.py' '{wineBottonPath}' {wine[o1_text.get()]}\" --keep-open")
+ DisableButton(False)
+
def BuildExeDeb():
if e1.get() == "":
wineBottonPath = setting["DefultBotton"]
@@ -447,6 +457,65 @@ def DeleteWineBotton():
traceback.print_exc()
tkinter.messagebox.showerror(title="错误", message=traceback.format_exc())
+def ThankWindow():
+ easygui.textbox(title="特别谢明", msg="感谢以下的大佬在 deepin 论坛、公众号等平台提供的 Wine 适配解决方案,现在将这些 Wine 适配方案加入此 Wine 运行器,对此有由衷的感谢!如果有侵犯到您的权利和意愿,请尽快与开发者联系删除在此程序内相关的内容:", text=thankText)
+
+def InstallWineFont():
+ threading.Thread(target=os.system, args=[f"'{programPath}/launch.sh' deepin-terminal -C 'echo 这些字体来自星火应用商店 && sudo ss-apt-fast install ms-core-fonts winfonts -y' --keep-open"]).start()
+
+class UpdateWindow():
+ data = {}
+ def ShowWindow():
+ update = tk.Toplevel()
+ update.title("检查更新")
+ update.resizable(0, 0)
+ update.iconphoto(False, tk.PhotoImage(file=iconPath))
+ versionLabel = ttk.Label(update, text="当前版本:{}\n最新版本:未知\n更新内容:".format(version))
+ updateText = tk.Text(update)
+ controlFrame = ttk.Frame(update)
+ ok = ttk.Button(controlFrame, text="更新(更新过程中会关闭所有Python应用,包括这个应用)", command=UpdateWindow.Update)
+ cancel = ttk.Button(controlFrame, text="取消", command=update.destroy)
+ try:
+ UpdateWindow.data = json.loads(requests.get("http://120.25.153.144/spark-deepin-wine-runner/update.json").text)
+ versionLabel = ttk.Label(update, text="当前版本:{}\n最新版本:{}\n更新内容:".format(version, UpdateWindow.data["Version"]))
+ if UpdateWindow.data["Version"] == version:
+ updateText.insert("0.0", "此为最新版本,无需更新")
+ ok.configure(state=tk.DISABLED)
+ else:
+ updateText.insert("0.0", UpdateWindow.data["New"].replace("\\n", "\n"))
+ except:
+ traceback.print_exc()
+ tkinter.messagebox.showerror(title="错误", message="无法连接服务器!")
+ updateText.configure(state=tk.DISABLED)
+ versionLabel.pack(anchor=tk.W)
+ updateText.pack()
+ controlFrame.pack(anchor=tk.E)
+ cancel.grid(row=0, column=0)
+ ok.grid(row=0, column=1)
+ update.mainloop()
+ def Update():
+ if not os.path.exists("/tmp/uengine-runner/update"):
+ os.makedirs("/tmp/spark-deepin-wine-runner/update")
+ try:
+ write_txt("/tmp/spark-deepin-wine-runner/update.sh", f"""#!/bin/bash
+echo 删除多余的安装包
+rm -rfv /tmp/spark-deepin-wine-runner/update/*
+echo 关闭“UEngine 运行器”以及其它“Python 应用”
+killall python3
+echo 下载安装包
+wget -P /tmp/spark-deepin-wine-runner/update {UpdateWindow.data["Url"][0], iconPath}
+echo 安装安装包
+dpkg -i /tmp/spark-deepin-wine-runner/update/*.deb
+echo 修复依赖关系
+apt install -f -y
+notify-send -i "{iconPath}" "更新完毕!"
+zenity --info --text=\"更新完毕!\" --ellipsize
+""")
+ except:
+ traceback.print_exc()
+ easygui.textbox(title="错误", msg="更新出现错误,无法继续更新!", text=traceback.format_exc())
+ os.system(f"'{programPath}/launch.sh' deepin-terminal -e pkexec bash /tmp/spark-deepin-wine-runner/update.sh")
+
class GetDllFromWindowsISO:
wineBottonPath = get_home() + "/.wine"
isoPath = None#ttk.Entry()
@@ -766,6 +835,9 @@ updateThingsString = '''※1、新增专门的程序设置,支持设置 Wine
title = "wine 运行器 {}".format(version)
updateTime = "2022年07月07日"
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
+thankText = ""
+for i in information["Thank"]:
+ thankText += f"{i}\n"
###########################
@@ -798,13 +870,14 @@ button1 = ttk.Button(window, text="浏览", command=liulanbutton) # 创建按
button2 = ttk.Button(window, text="浏览", command=liulanexebutton) # 创建按钮控件
button3 = ttk.Button(controlFrame, text="启动", command=runexebutton) # 创建按钮控件
killProgram = ttk.Button(controlFrame, text="停止", command=KillProgram)
-openWineBotton = ttk.Button(controlFrame, text="打开Wine容器目录", command=OpenWineBotton)
-installWineFont = ttk.Button(controlFrame, text="安装字体", command=OpenWineFontPath)
+#openWineBotton = ttk.Button(controlFrame, text="打开Wine容器目录", command=OpenWineBotton)
+#installWineFont = ttk.Button(controlFrame, text="安装字体", command=OpenWineFontPath)
uninstallProgram = ttk.Button(controlFrame, text="卸载程序", command=UninstallProgram)
wineConfig = ttk.Button(controlFrame, text="配置wine容器", command=ConfigWineBotton)
sparkWineSetting = ttk.Button(controlFrame, text="星火wine设置", command=lambda: threading.Thread(target=os.system, args=["/opt/durapps/spark-dwine-helper/spark-dwine-helper-settings/settings.sh"]).start())
getProgramIcon = ttk.Button(controlFrame, text="获取选择的程序图标", command=lambda: threading.Thread(target=RunWineProgram, args=[f"{programPath}/Run.bat' '{programPath}/BeCyIconGrabber.exe' '{e2.get()}"]).start())
-winetricksOpen = ttk.Button(controlFrame, text="使用winetricks打开指定容器(只能使用wine和wine64)", command=lambda: threading.Thread(target=RunWinetricks).start())
+trasButton = ttk.Button(controlFrame, text="窗口透明度工具", command=lambda: threading.Thread(target=RunWineProgram, args=[programPath + "/窗体透明度设置工具.exe"]).start())
+#winetricksOpen = ttk.Button(controlFrame, text="使用winetricks打开指定容器(只能使用wine和wine64)", command=lambda: threading.Thread(target=RunWinetricks).start())
button5 = ttk.Button(sendFrame, text="创建用于运行的 desktop 文件到桌面", command=make_desktop_on_desktop) # 创建按钮控件
saveDesktopFileOnLauncher = ttk.Button(sendFrame, text="创建用于运行的 desktop 文件到启动器", command=make_desktop_on_launcher) # 创建按钮控件
label1 = ttk.Label(window, text="选择你想要使用的 wine 容器:") # 创建标签控件
@@ -827,12 +900,18 @@ programmenu.add_separator() # 设置分界线
programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序”项
wineOption = tk.Menu(menu, tearoff=0, background="white") # 设置“Wine”菜单栏
menu.add_cascade(label="Wine", menu=wineOption)
+wineOption.add_command(label="打开 Wine 容器目录", command=OpenWineBotton)
+wineOption.add_command(label="安装常见字体", command=InstallWineFont)
+wineOption.add_command(label="安装自定义字体", command=OpenWineFontPath)
+wineOption.add_command(label="删除选择的 Wine 容器", command=DeleteWineBotton)
+wineOption.add_separator()
wineOption.add_command(label="打包 wine 应用", command=BuildExeDeb)
wineOption.add_separator()
wineOption.add_command(label="从镜像获取DLL(只支持Windows XP、Windows Server 2003官方安装镜像)", command=GetDllFromWindowsISO.ShowWindow)
wineOption.add_separator()
wineOption.add_command(label="在指定wine、指定容器安装 .net framework", command=lambda: threading.Thread(target=InstallNetFramework).start())
wineOption.add_command(label="在指定wine、指定容器安装 Visual Studio C++", command=lambda: threading.Thread(target=InstallVisualStudioCPlusPlus).start())
+wineOption.add_command(label="在指定wine、指定容器安装 MSXML", command=lambda: threading.Thread(target=InstallMSXML).start())
wineOption.add_command(label="在指定wine、指定容器安装 gecko", command=lambda: threading.Thread(target=InstallMonoGecko, args=["gecko"]).start())
wineOption.add_command(label="在指定wine、指定容器安装 mono", command=lambda: threading.Thread(target=InstallMonoGecko, args=["mono"]).start())
wineOption.add_separator()
@@ -840,19 +919,39 @@ wineOption.add_command(label="打开指定wine、指定容器的控制面板", c
wineOption.add_command(label="打开指定wine、指定容器的浏览器", command=lambda: threading.Thread(target=RunWineProgram, args=["iexplore' 'https://www.deepin.org"]).start())
wineOption.add_command(label="打开指定wine、指定容器的注册表", command=lambda: threading.Thread(target=RunWineProgram, args=["regedit"]).start())
wineOption.add_command(label="打开指定wine、指定容器的任务管理器", command=lambda: threading.Thread(target=RunWineProgram, args=["taskmgr"]).start())
+wineOption.add_command(label="打开指定wine、指定容器的资源管理器", command=lambda: threading.Thread(target=RunWineProgram, args=["explorer"]).start())
wineOption.add_command(label="打开指定wine、指定容器的关于 wine", command=lambda: threading.Thread(target=RunWineProgram, args=["winver"]).start())
wineOption.add_separator()
wineOption.add_command(label="设置 run_v3.sh 的文管为 Deepin 默认文管", command=SetDeepinFileDialogDeepin)
wineOption.add_command(label="设置 run_v3.sh 的文管为 Wine 默认文管", command=SetDeepinFileDialogDefult)
wineOption.add_command(label="重新安装 deepin-wine-helper", command=SetDeepinFileDialogRecovery)
wineOption.add_separator()
-wineOption.add_command(label="删除选择的 wine 容器", command=DeleteWineBotton)
+wineOption.add_command(label="使用winetricks打开指定容器(只能使用wine和wine64)", command=lambda: threading.Thread(target=RunWinetricks).start())
+wineOption.add_separator()
+opengl = tk.Menu()
+opengl.add_command(label="开启 opengl", command=lambda: threading.Thread(target=RunWineProgram, args=[f"regedit.exe' /s '{programPath}/EnabledOpengl.reg"]).start())
+opengl.add_command(label="禁用 opengl", command=lambda: threading.Thread(target=RunWineProgram, args=[f"regedit.exe' /s '{programPath}/DisabledOpengl.reg"]).start())
+wineOption.add_cascade(label="启用/禁用 opengl", menu=opengl)
+winbind = tk.Menu()
+winbind.add_command(label="安装 winbind", command=lambda: os.system(f"'{programPath}/launch.sh' deepin-terminal -C 'pkexec apt install winbind -y' --keep-open"))
+winbind.add_command(label="卸载 winbind", command=lambda: os.system(f"'{programPath}/launch.sh' deepin-terminal -C 'pkexec apt purge winbind -y' --keep-open"))
+wineOption.add_cascade(label="安装/卸载 winbind", menu=winbind)
+safeWebsize = tk.Menu(menu, tearoff=0, background="white")
+menu.add_cascade(label="云沙箱", menu=safeWebsize)
+safeWebsize.add_command(label="360 沙箱云", command=lambda: webbrowser.open_new_tab("https://ata.360.net/"))
+safeWebsize.add_command(label="微步云沙箱", command=lambda: webbrowser.open_new_tab("https://s.threatbook.cn/"))
+safeWebsize.add_command(label="VIRUSTOTAL", command=lambda: webbrowser.open_new_tab("https://www.virustotal.com/"))
+
help = tk.Menu(menu, tearoff=0, background="white") # 设置“帮助”菜单栏
+
menu.add_cascade(label="帮助", menu=help)
help.add_command(label="程序官网", command=OpenProgramURL) # 设置“程序官网”项
help.add_separator()
help.add_command(label="小提示", command=helps) # 设置“小提示”项
help.add_command(label="更新内容", command=UpdateThings) # 设置“更新内容”项
+help.add_command(label="谢明名单", command=ThankWindow)
+help.add_separator()
+help.add_command(label="更新这个程序", command=UpdateWindow.ShowWindow)
help.add_command(label="关于这个程序", command=about_this_program) # 设置“关于这个程序”项
help.add_separator()
moreProgram = tk.Menu(menu, tearoff=0, background="white")
@@ -890,13 +989,14 @@ button2.grid(row=1, column=2)
controlFrame.grid(row=3, column=0, columnspan=3)
button3.grid(row=0, column=0)
killProgram.grid(row=0, column=1)
-openWineBotton.grid(row=0, column=2)
-installWineFont.grid(row=0, column=3)
-uninstallProgram.grid(row=0, column=4)
-wineConfig.grid(row=0, column=5)
-sparkWineSetting.grid(row=0, column=6)
-getProgramIcon.grid(row=0, column=7)
-winetricksOpen.grid(row=0, column=8)
+#openWineBotton.grid(row=0, column=2)
+#installWineFont.grid(row=0, column=3)
+uninstallProgram.grid(row=0, column=2)
+wineConfig.grid(row=0, column=3)
+sparkWineSetting.grid(row=0, column=4)
+getProgramIcon.grid(row=0, column=5)
+#winetricksOpen.grid(row=0, column=8)
+trasButton.grid(row=0, column=6)
sendFrame.grid(row=5, column=0, columnspan=3)
button5.grid(row=0, column=0)
saveDesktopFileOnLauncher.grid(row=0, column=1)
diff --git a/窗体透明度设置工具.exe b/窗体透明度设置工具.exe
new file mode 100644
index 0000000000000000000000000000000000000000..b5c47561fbce7e4b0af808996cf40426d265863a
GIT binary patch
literal 664576
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