mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-01-12 17:48:27 +08:00
初步1.6.0格局形成
This commit is contained in:
parent
51a5f20832
commit
3aa23d1635
BIN
DisabledOpengl.reg
Normal file
BIN
DisabledOpengl.reg
Normal file
Binary file not shown.
BIN
EnabledOpengl.reg
Normal file
BIN
EnabledOpengl.reg
Normal file
Binary file not shown.
41
InstallMsxml.py
Executable file
41
InstallMsxml.py
Executable file
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装 MSXML")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装 MSXML 的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,两个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
msxmlList = [
|
||||
["MSXML 4.0 SP2", "https://www.gitlink.org.cn/api/attachments/390679?gfdgd_xi"],
|
||||
["MSXML 4.0 SP3", "https://www.gitlink.org.cn/api/attachments/390678?gfdgd_xi"],
|
||||
["MSXML 6.0", "https://www.gitlink.org.cn/api/attachments/390681?gfdgd_xi"]
|
||||
]
|
||||
print("请选择以下的 MSXML 进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(msxmlList)):
|
||||
print(f"{i}、{msxmlList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = int(input("请输入要选择要安装的 MSXML:"))
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(msxmlList):
|
||||
break
|
||||
print(f"您选择了 {msxmlList[choose][0]}")
|
||||
print("开始下载")
|
||||
os.system("rm -rfv /tmp/wineinstallmsxml")
|
||||
os.system("mkdir -p /tmp/wineinstallmsxml")
|
||||
os.system(f"aria2c -x 16 -s 16 -d /tmp/wineinstallmsxml -o install.msi \"{msxmlList[choose][1]}\"")
|
||||
print("开始安装")
|
||||
os.system(f"WINEPREFIX={sys.argv[1]} {sys.argv[2]} msiexec /i /tmp/wineinstallmsxml/install.msi")
|
||||
print("安装结束")
|
||||
sys.exit()
|
48
InstallOther.py
Normal file
48
InstallOther.py
Normal file
@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
|
||||
if "--help" in sys.argv:
|
||||
print("作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢")
|
||||
print("版本:1.0.0")
|
||||
print("本程序可以更方便的在 wine 容器中安装运行库")
|
||||
sys.exit()
|
||||
if len(sys.argv) <= 2 or sys.argv[1] == "" or sys.argv[2] == "":
|
||||
print("您未指定需要安装的容器和使用的 wine,无法继续")
|
||||
print("参数:")
|
||||
print("XXX 参数一 参数二")
|
||||
print("参数一为需要安装的容器,参数二为需要使用的wine,两个参数位置不能颠倒")
|
||||
sys.exit()
|
||||
|
||||
msxmlList = [
|
||||
["Windows Script 5.7 for Windows XP", "https://download.microsoft.com/download/f/f/e/ffea3abf-b55f-4924-b5a5-bde0805ad67c/scripten.exe", "exe"],
|
||||
["Windows Management Instrumentation 1.50.1131", "https://www.gitlink.org.cn/api/attachments/390680", "exe"]
|
||||
]
|
||||
print("请选择以下的应用进行安装(不保证能正常安装运行)")
|
||||
for i in range(0, len(msxmlList)):
|
||||
print(f"{i}、{msxmlList[i][0]}")
|
||||
while True:
|
||||
try:
|
||||
choose = int(input("请输入要选择要安装的应用:"))
|
||||
except:
|
||||
print("输入错误,请重新输入")
|
||||
continue
|
||||
if 0 <= choose and choose < len(msxmlList):
|
||||
break
|
||||
print(f"您选择了{msxmlList[choose][0]}")
|
||||
print("开始下载")
|
||||
os.system("rm -rf /tmp/wineinstall")
|
||||
os.system("mkdir -p /tmp/wineinstall")
|
||||
if msxmlList[choose][2] == "msi":
|
||||
os.system(f"aria2c -x 16 -s 16 -d /tmp/wineinstall -o install.msi \"{msxmlList[choose][1]}\"")
|
||||
print("开始安装")
|
||||
os.system(f"WINEPREFIX={sys.argv[1]} {sys.argv[2]} msiexec /i /tmp/wineinstall/install.msi")
|
||||
print("安装结束")
|
||||
sys.exit()
|
||||
if msxmlList[choose][2] == "exe":
|
||||
os.system(f"aria2c -x 16 -s 16 -d /tmp/wineinstall -o install.exe \"{msxmlList[choose][1]}\"")
|
||||
print("开始安装")
|
||||
os.system(f"WINEPREFIX={sys.argv[1]} {sys.argv[2]} /tmp/wineinstall/install.exe")
|
||||
print("安装结束")
|
||||
sys.exit()
|
||||
pass
|
@ -1,10 +1,10 @@
|
||||
Package: spark-deepin-wine-runner
|
||||
Version: 1.5.3
|
||||
Version: 1.6.0
|
||||
Maintainer: gfdgd xi <3025613752@qq.com>, 为什么您不喜欢熊出没和阿布呢
|
||||
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 运行器
|
||||
|
@ -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
|
||||
|
133
deepin-wine-runner-update-bug
Executable file
133
deepin-wine-runner-update-bug
Executable file
@ -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()
|
@ -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 生态适配的大佬进行由衷的更新!"
|
||||
]
|
||||
}
|
134
main.py
134
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)
|
||||
|
BIN
窗体透明度设置工具.exe
Normal file
BIN
窗体透明度设置工具.exe
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user