mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-01-13 01:58:27 +08:00
2.5.0 done
This commit is contained in:
parent
ff0a578890
commit
c0ea459dae
18
README.md
18
README.md
@ -1,5 +1,5 @@
|
|||||||
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
|
||||||
<h1 align="center">Wine 运行器 2.4.1.1</h1>
|
<h1 align="center">Wine 运行器 2.5.0</h1>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
## 介绍
|
## 介绍
|
||||||
@ -104,6 +104,22 @@ desktop文件中StartupWMClass字段。用于让桌面组件将窗口类名与de
|
|||||||
![image.png](https://storage.deepin.org/thread/202207190822204627_image.png)
|
![image.png](https://storage.deepin.org/thread/202207190822204627_image.png)
|
||||||
|
|
||||||
## 更新日志
|
## 更新日志
|
||||||
|
### 2.5.0(2022年11月25日)
|
||||||
|
**※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐);**
|
||||||
|
**※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式;**
|
||||||
|
**※3、支持多图标的程序打包;**
|
||||||
|
**※4、修复了安装更多 Wine 换源换了个寂寞的问题;**
|
||||||
|
**※5、修复安装更多 Wine 重新安装后列表丢失的问题;**
|
||||||
|
**※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器;**
|
||||||
|
**※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;**
|
||||||
|
**※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;**
|
||||||
|
**※9、支持移除指定的 .desktop 快捷方式;**
|
||||||
|
**※10、新增日志分析功能以及导出、上传日志功能;**
|
||||||
|
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||||
|
12、优化文案、新增友链;
|
||||||
|
13、提供了部分组件的测试功能。
|
||||||
|
![image.png](https://storage.deepin.org/thread/202211250932168081_image.png)
|
||||||
|
|
||||||
### 2.4.1.1(2022年11月21日)
|
### 2.4.1.1(2022年11月21日)
|
||||||
**※1、修复已知问题**
|
**※1、修复已知问题**
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Package: spark-deepin-wine-runner
|
Package: spark-deepin-wine-runner
|
||||||
Version: 2.5.0~alpha2
|
Version: 2.5.0
|
||||||
Maintainer: gfdgd xi <3025613752@qq.com>, 为什么您不喜欢熊出没和阿布呢
|
Maintainer: gfdgd xi <3025613752@qq.com>, 为什么您不喜欢熊出没和阿布呢
|
||||||
Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner, https://github.com/gfdgd-xi/deep-wine-runner, https://gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
Homepage: https://gitee.com/gfdgd-xi/deep-wine-runner, https://github.com/gfdgd-xi/deep-wine-runner, https://gitlink.org.cn/gfdgd_xi/deep-wine-runner
|
||||||
Architecture: all
|
Architecture: all
|
||||||
@ -11,17 +11,19 @@ Conflicts: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer
|
|||||||
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer
|
Replaces: spark.deepin-venturi-setter, spark-deepin-wine5-application-packer
|
||||||
Installed-Size: 21844
|
Installed-Size: 21844
|
||||||
Description: gfdgd xi、为什么您不喜欢熊出没和阿布呢 制作的 wine 运行器
|
Description: gfdgd xi、为什么您不喜欢熊出没和阿布呢 制作的 wine 运行器
|
||||||
2.4.1 更新内容:
|
2.5.0 更新内容:
|
||||||
※1、不基于生态适配活动脚本的打包器支持只生成制作容器的 7z 包
|
※1、容器自动配置脚本 GUI 查看介绍使用 QWebEngineWidget,支持图片(非强制依赖,只做推荐);
|
||||||
※2、两个打包器的容器自动删除脚本添加 kill.sh
|
※2、不基于生态适配活动脚本打包器跟进 arm 架构 2022年11月11日的 Wine 微信打包方式;
|
||||||
※3、Wine 运行器支持杀死对应容器进程
|
※3、支持多图标的程序打包;
|
||||||
※4、容器自动配置脚本和 Wine 安装器支持切换源
|
※4、修复了安装更多 Wine 换源换了个寂寞的问题;
|
||||||
5、非生态适配脚本打包器追加运行参数改为 --uri XXX 而非直接 XXX
|
※5、修复安装更多 Wine 重新安装后列表丢失的问题;
|
||||||
6、两个打包器新增星火应用商店投稿入口
|
※6、新增了对 Deepin 23 Alpha 优化的 Wine 安装器;
|
||||||
7、优化开启 Windows 虚拟机功能在未安装 VirtualBox 时的提示
|
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
||||||
8、Reg Shot 版本从 1.8.3-beta1V5 升级到 1.9.0
|
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
||||||
9、Geek Uninstaller 版本从 1.5.1.161 升级到 1.5.1.163
|
※9、支持移除指定的 .desktop 快捷方式;
|
||||||
10、容器自动配置脚本添加 installother 命令、修复返回值传递问题
|
※10、新增日志分析功能以及导出、上传日志功能;
|
||||||
11、不显示 pip 安装库的提示信息(因为不是很核心的库)
|
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||||
更新时间:2022年11月06日
|
12、优化文案、新增友链;
|
||||||
|
13、提供了部分组件的测试功能。
|
||||||
|
更新时间:2022年11月25日
|
||||||
作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
作者:gfdgd xi、为什么您不喜欢熊出没和阿布呢
|
||||||
|
@ -166,9 +166,15 @@ class LogChecking():
|
|||||||
index = questionList.currentIndex().row()
|
index = questionList.currentIndex().row()
|
||||||
lists = questionMap[index]
|
lists = questionMap[index]
|
||||||
print(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh")
|
print(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh")
|
||||||
if os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"):
|
if lists[0] == 1 and os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"):
|
||||||
OpenTerminal(f"'{programPath}/AutoShell/main.py' '{programPath}/CheckDLL/bash/{lists[1].lower()}.sh'")
|
OpenTerminal(f"'{programPath}/AutoShell/main.py' '{programPath}/CheckDLL/bash/{lists[1].lower()}.sh'")
|
||||||
return
|
return
|
||||||
|
if lists[0] == 2:
|
||||||
|
QtWidgets.QMessageBox.information(logWindow, "修复方法", "切换其它 Wine")
|
||||||
|
return
|
||||||
|
if lists[0] == 4:
|
||||||
|
QtWidgets.QMessageBox.information(logWindow, "修复方法", "如是 Deepin Wine 可以尝试切换 WineHQ,\n并且取消勾选运行器主页面菜单栏“程序”=>“设置Wine”,取消勾选“屏蔽 Wine 默认 Mono 和 Gecko 安装器”\n然后尝试在菜单栏的“Wine”=>“在指定 Wine、容器安装组件”=>“在指定 Wine、容器安装 Gecko”来安装 Gecko")
|
||||||
|
return
|
||||||
QtWidgets.QMessageBox.critical(logWindow, "错误", "无法修复该问题")
|
QtWidgets.QMessageBox.critical(logWindow, "错误", "无法修复该问题")
|
||||||
|
|
||||||
def Show(lists):
|
def Show(lists):
|
||||||
@ -177,15 +183,21 @@ class LogChecking():
|
|||||||
disbledButton = False
|
disbledButton = False
|
||||||
print(lists)
|
print(lists)
|
||||||
if not len(lists):
|
if not len(lists):
|
||||||
nmodel.appendRow(QtGui.QStandardItem(f"无法分析到错误"))
|
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||||
disbledButton = True
|
disbledButton = True
|
||||||
for i in lists:
|
for i in lists:
|
||||||
if i[0] == 0:
|
if i[0] == 0:
|
||||||
nmodel.appendRow(QtGui.QStandardItem(f"无法分析到错误"))
|
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||||
disbledButton = True
|
disbledButton = True
|
||||||
break
|
break
|
||||||
if i[0] == 1:
|
if i[0] == 1:
|
||||||
nmodel.appendRow(QtGui.QStandardItem(f"无法调用 Dll:{i[1]}"))
|
nmodel.appendRow(QtGui.QStandardItem(f"× 无法调用 Dll:{i[1]}"))
|
||||||
|
if i[0] == 2:
|
||||||
|
nmodel.appendRow(QtGui.QStandardItem(f"× 尝试用 Mono 运行非 .net 应用 {i[1]}?"))
|
||||||
|
if i[0] == 3:
|
||||||
|
nmodel.appendRow(QtGui.QStandardItem(f"! 无法加载 Gecko,是被禁用或未安装?"))
|
||||||
|
if i[0] == 4:
|
||||||
|
nmodel.appendRow(QtGui.QStandardItem(f"× 无法更新 Wine 容器版本,是否还有 Wine 程序运行?"))
|
||||||
questionMap = lists[:]
|
questionMap = lists[:]
|
||||||
repairButton.setDisabled(disbledButton)
|
repairButton.setDisabled(disbledButton)
|
||||||
questionList.setModel(nmodel)
|
questionList.setModel(nmodel)
|
||||||
@ -211,6 +223,14 @@ class LogThreading(QtCore.QThread):
|
|||||||
# Lose Dll
|
# Lose Dll
|
||||||
repairList.append([1, i[i.index("_ilonly") + 8: i.index("not")].strip()])
|
repairList.append([1, i[i.index("_ilonly") + 8: i.index("not")].strip()])
|
||||||
continue
|
continue
|
||||||
|
if "Cannot open assembly".lower() in checkingText and ": File does not contain a valid CIL image.".lower() in checkingText:
|
||||||
|
# Mono
|
||||||
|
repairList.append([2, i.replace(": File does not contain a valid CIL image.", "").replace("Cannot open assembly", "").strip()[1: -1]])
|
||||||
|
if "Could not load wine-gecko. HTML rendering will be disabled.".lower() in checkingText and "Could not find Wine Gecko. HTML rendering will be disabled.".lower() in checkingText:
|
||||||
|
# Disbled Gecko
|
||||||
|
repairList.append([3, ""])
|
||||||
|
if "Your wineserver binary was not upgraded correctly".lower() in checkingText:
|
||||||
|
repairList.append([4, ""])
|
||||||
self.done.emit(repairList)
|
self.done.emit(repairList)
|
||||||
|
|
||||||
|
|
||||||
@ -1770,6 +1790,39 @@ class ValueCheck():
|
|||||||
def ChangePath():
|
def ChangePath():
|
||||||
e1.setCurrentText(f'{setting["DefultBotton"]}/{os.path.splitext(os.path.basename(e2.currentText()))[0]}')
|
e1.setCurrentText(f'{setting["DefultBotton"]}/{os.path.splitext(os.path.basename(e2.currentText()))[0]}')
|
||||||
|
|
||||||
|
def UploadLog():
|
||||||
|
if QtWidgets.QMessageBox.question(window, "提示", "您确定要上传吗?上传内容将不会公开,将用于加强日志分析功能") == QtWidgets.QMessageBox.Yes:
|
||||||
|
text = QtWidgets.QInputDialog.getMultiLineText(window, "输入内容", "输入描述信息")
|
||||||
|
try:
|
||||||
|
returnList = requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL2xvZw==").decode("utf-8"), {
|
||||||
|
"Log": returnText.toPlainText(),
|
||||||
|
"Wine": wine[o1.currentText()],
|
||||||
|
"Tips": text
|
||||||
|
}).json
|
||||||
|
if returnList["ExitCode"] == 0:
|
||||||
|
QtWidgets.QMessageBox.information(window, "提示", "上传成功!")
|
||||||
|
else:
|
||||||
|
print(returnList)
|
||||||
|
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||||
|
|
||||||
|
def SaveLog():
|
||||||
|
path = QtWidgets.QFileDialog.getSaveFileName(window, "保存日志", get_home(), "txt文件(*.txt);;html 文件(*.html);;所有文件(*.*))")
|
||||||
|
if not path[1]:
|
||||||
|
return
|
||||||
|
print(path)
|
||||||
|
try:
|
||||||
|
with open(path[0], "w") as file:
|
||||||
|
if path[1] == "html 文件(*.html)":
|
||||||
|
file.write(returnText.toHtml())
|
||||||
|
else:
|
||||||
|
file.write(returnText.toPlainText())
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
QtWidgets.QMessageBox.critical(window, "错误", traceback.format_exc())
|
||||||
|
|
||||||
###########################
|
###########################
|
||||||
# 加载配置
|
# 加载配置
|
||||||
###########################
|
###########################
|
||||||
@ -2079,13 +2132,14 @@ updateThingsString = '''※1、容器自动配置脚本 GUI 查看介绍使用 Q
|
|||||||
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
||||||
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
||||||
※9、支持移除指定的 .desktop 快捷方式;
|
※9、支持移除指定的 .desktop 快捷方式;
|
||||||
10、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
※10、新增日志分析功能以及导出、上传日志功能;
|
||||||
11、优化文案、新增友链;
|
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||||
12、提供了部分组件的测试功能。
|
12、优化文案、新增友链;
|
||||||
|
13、提供了部分组件的测试功能。
|
||||||
'''
|
'''
|
||||||
for i in information["Thank"]:
|
for i in information["Thank"]:
|
||||||
thankText += f"{i}\n"
|
thankText += f"{i}\n"
|
||||||
updateTime = "2022年11月23日"
|
updateTime = "2022年11月25日"
|
||||||
about = f'''<style>
|
about = f'''<style>
|
||||||
a:link, a:active {{
|
a:link, a:active {{
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@ -2567,10 +2621,16 @@ s3.triggered.connect(lambda: webbrowser.open_new_tab("https://www.virustotal.com
|
|||||||
log = menu.addMenu(QtCore.QCoreApplication.translate("U", "日志(&L)"))
|
log = menu.addMenu(QtCore.QCoreApplication.translate("U", "日志(&L)"))
|
||||||
getDllInfo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询 Dll"))
|
getDllInfo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询 Dll"))
|
||||||
checkLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "日志分析"))
|
checkLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "日志分析"))
|
||||||
|
saveLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "另存为日志"))
|
||||||
|
uploadLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "上传日志"))
|
||||||
getDllInfo.triggered.connect(DllWindow.ShowWindow)
|
getDllInfo.triggered.connect(DllWindow.ShowWindow)
|
||||||
checkLogText.triggered.connect(LogChecking.ShowWindow)
|
checkLogText.triggered.connect(LogChecking.ShowWindow)
|
||||||
|
saveLogText.triggered.connect(SaveLog)
|
||||||
|
uploadLogText.triggered.connect(UploadLog)
|
||||||
log.addAction(getDllInfo)
|
log.addAction(getDllInfo)
|
||||||
log.addAction(checkLogText)
|
log.addAction(checkLogText)
|
||||||
|
log.addAction(saveLogText)
|
||||||
|
log.addAction(uploadLogText)
|
||||||
|
|
||||||
help = menu.addMenu(QtCore.QCoreApplication.translate("U", "帮助(&H)"))
|
help = menu.addMenu(QtCore.QCoreApplication.translate("U", "帮助(&H)"))
|
||||||
runStatusWebSize = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询程序在 Wine 的运行情况"))
|
runStatusWebSize = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询程序在 Wine 的运行情况"))
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
{
|
{
|
||||||
"Version": "2.5.0",
|
"Version": "2.5.0",
|
||||||
"Thank": [
|
"Thank": [
|
||||||
|
"感谢 @牦牛儿苗 进行了龙芯 3a5000 平台的测试与移植",
|
||||||
"感谢 @雁舞白沙 优化了程序文案",
|
"感谢 @雁舞白沙 优化了程序文案",
|
||||||
"感谢 @豪 制作的非官方论坛 https://gfdgdxi.flarum.cloud/",
|
"感谢 @豪 的程序测试和制作的非官方论坛 https://gfdgdxi.flarum.cloud/",
|
||||||
"感谢 @185******67 反馈的 2.4.0 无法打开 Visual Basic 组件安装工具的问题",
|
"感谢 @185******67 反馈的 2.4.0 无法打开 Visual Basic 组件安装工具的问题",
|
||||||
"感谢 @shenmo 提供的 在打包器的 postrm 脚本添加 kill.sh、追加参数改为 --uri xxxxxxx、独立生成容器 7z 文件的功能",
|
"感谢 @shenmo 提供的 在打包器的 postrm 脚本添加 kill.sh、追加参数改为 --uri xxxxxxx、独立生成容器 7z 文件的功能",
|
||||||
"感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
|
"感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
{
|
{
|
||||||
"Version": "2.5.0",
|
"Version": "2.5.0",
|
||||||
"Thank": [
|
"Thank": [
|
||||||
|
"感谢 @牦牛儿苗 进行了龙芯 3a5000 平台的测试与移植",
|
||||||
"感谢 @雁舞白沙 优化了程序文案",
|
"感谢 @雁舞白沙 优化了程序文案",
|
||||||
"感谢 @豪 制作的非官方论坛 https://gfdgdxi.flarum.cloud/",
|
"感谢 @豪 的程序测试和制作的非官方论坛 https://gfdgdxi.flarum.cloud/",
|
||||||
"感谢 @185******67 反馈的 2.4.0 无法打开 Visual Basic 组件安装工具的问题",
|
"感谢 @185******67 反馈的 2.4.0 无法打开 Visual Basic 组件安装工具的问题",
|
||||||
"感谢 @shenmo 提供的 在打包器的 postrm 脚本添加 kill.sh、追加参数改为 --uri xxxxxxx、独立生成容器 7z 文件的功能",
|
"感谢 @shenmo 提供的 在打包器的 postrm 脚本添加 kill.sh、追加参数改为 --uri xxxxxxx、独立生成容器 7z 文件的功能",
|
||||||
"感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
|
"感谢 @a2035274 @虚幻的早晨 https://bbs.deepin.org/post/238301",
|
||||||
|
@ -166,9 +166,15 @@ class LogChecking():
|
|||||||
index = questionList.currentIndex().row()
|
index = questionList.currentIndex().row()
|
||||||
lists = questionMap[index]
|
lists = questionMap[index]
|
||||||
print(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh")
|
print(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh")
|
||||||
if os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"):
|
if lists[0] == 1 and os.path.exists(f"{programPath}/CheckDLL/bash/{lists[1].lower()}.sh"):
|
||||||
OpenTerminal(f"'{programPath}/AutoShell/main.py' '{programPath}/CheckDLL/bash/{lists[1].lower()}.sh'")
|
OpenTerminal(f"'{programPath}/AutoShell/main.py' '{programPath}/CheckDLL/bash/{lists[1].lower()}.sh'")
|
||||||
return
|
return
|
||||||
|
if lists[0] == 2:
|
||||||
|
QtWidgets.QMessageBox.information(logWindow, "修复方法", "切换其它 Wine")
|
||||||
|
return
|
||||||
|
if lists[0] == 4:
|
||||||
|
QtWidgets.QMessageBox.information(logWindow, "修复方法", "如是 Deepin Wine 可以尝试切换 WineHQ,\n并且取消勾选运行器主页面菜单栏“程序”=>“设置Wine”,取消勾选“屏蔽 Wine 默认 Mono 和 Gecko 安装器”\n然后尝试在菜单栏的“Wine”=>“在指定 Wine、容器安装组件”=>“在指定 Wine、容器安装 Gecko”来安装 Gecko")
|
||||||
|
return
|
||||||
QtWidgets.QMessageBox.critical(logWindow, "错误", "无法修复该问题")
|
QtWidgets.QMessageBox.critical(logWindow, "错误", "无法修复该问题")
|
||||||
|
|
||||||
def Show(lists):
|
def Show(lists):
|
||||||
@ -177,15 +183,21 @@ class LogChecking():
|
|||||||
disbledButton = False
|
disbledButton = False
|
||||||
print(lists)
|
print(lists)
|
||||||
if not len(lists):
|
if not len(lists):
|
||||||
nmodel.appendRow(QtGui.QStandardItem(f"无法分析到错误"))
|
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||||
disbledButton = True
|
disbledButton = True
|
||||||
for i in lists:
|
for i in lists:
|
||||||
if i[0] == 0:
|
if i[0] == 0:
|
||||||
nmodel.appendRow(QtGui.QStandardItem(f"无法分析到错误"))
|
nmodel.appendRow(QtGui.QStandardItem(f"√ 无法分析到错误"))
|
||||||
disbledButton = True
|
disbledButton = True
|
||||||
break
|
break
|
||||||
if i[0] == 1:
|
if i[0] == 1:
|
||||||
nmodel.appendRow(QtGui.QStandardItem(f"无法调用 Dll:{i[1]}"))
|
nmodel.appendRow(QtGui.QStandardItem(f"× 无法调用 Dll:{i[1]}"))
|
||||||
|
if i[0] == 2:
|
||||||
|
nmodel.appendRow(QtGui.QStandardItem(f"× 尝试用 Mono 运行非 .net 应用 {i[1]}?"))
|
||||||
|
if i[0] == 3:
|
||||||
|
nmodel.appendRow(QtGui.QStandardItem(f"! 无法加载 Gecko,是被禁用或未安装?"))
|
||||||
|
if i[0] == 4:
|
||||||
|
nmodel.appendRow(QtGui.QStandardItem(f"× 无法更新 Wine 容器版本,是否还有 Wine 程序运行?"))
|
||||||
questionMap = lists[:]
|
questionMap = lists[:]
|
||||||
repairButton.setDisabled(disbledButton)
|
repairButton.setDisabled(disbledButton)
|
||||||
questionList.setModel(nmodel)
|
questionList.setModel(nmodel)
|
||||||
@ -211,6 +223,14 @@ class LogThreading(QtCore.QThread):
|
|||||||
# Lose Dll
|
# Lose Dll
|
||||||
repairList.append([1, i[i.index("_ilonly") + 8: i.index("not")].strip()])
|
repairList.append([1, i[i.index("_ilonly") + 8: i.index("not")].strip()])
|
||||||
continue
|
continue
|
||||||
|
if "Cannot open assembly".lower() in checkingText and ": File does not contain a valid CIL image.".lower() in checkingText:
|
||||||
|
# Mono
|
||||||
|
repairList.append([2, i.replace(": File does not contain a valid CIL image.", "").replace("Cannot open assembly", "").strip()[1: -1]])
|
||||||
|
if "Could not load wine-gecko. HTML rendering will be disabled.".lower() in checkingText and "Could not find Wine Gecko. HTML rendering will be disabled.".lower() in checkingText:
|
||||||
|
# Disbled Gecko
|
||||||
|
repairList.append([3, ""])
|
||||||
|
if "Your wineserver binary was not upgraded correctly".lower() in checkingText:
|
||||||
|
repairList.append([4, ""])
|
||||||
self.done.emit(repairList)
|
self.done.emit(repairList)
|
||||||
|
|
||||||
|
|
||||||
@ -1771,25 +1791,33 @@ def ChangePath():
|
|||||||
e1.setCurrentText(f'{setting["DefultBotton"]}/{os.path.splitext(os.path.basename(e2.currentText()))[0]}')
|
e1.setCurrentText(f'{setting["DefultBotton"]}/{os.path.splitext(os.path.basename(e2.currentText()))[0]}')
|
||||||
|
|
||||||
def UploadLog():
|
def UploadLog():
|
||||||
if QtWidgets.QMessageBox.question(window, "提示", "您确定要上传吗?") == QtWidgets.QMessageBox.Yes:
|
if QtWidgets.QMessageBox.question(window, "提示", "您确定要上传吗?上传内容将不会公开,将用于加强日志分析功能") == QtWidgets.QMessageBox.Yes:
|
||||||
text = QtWidgets.QInputDialog.getText(window, "输入内容", "输入内容以描述")
|
text = QtWidgets.QInputDialog.getMultiLineText(window, "输入内容", "输入描述信息")
|
||||||
try:
|
try:
|
||||||
requests.post("", {
|
returnList = requests.post(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0OjMwMjUwL2xvZw==").decode("utf-8"), {
|
||||||
"Log": returnText.toPlainText(),
|
"Log": returnText.toPlainText(),
|
||||||
"Wine": wine[o1.currentText()],
|
"Wine": wine[o1.currentText()],
|
||||||
"Tips": text
|
"Tips": text
|
||||||
})
|
}).json
|
||||||
|
if returnList["ExitCode"] == 0:
|
||||||
|
QtWidgets.QMessageBox.information(window, "提示", "上传成功!")
|
||||||
|
else:
|
||||||
|
print(returnList)
|
||||||
|
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
QtWidgets.QMessageBox.critical(window, "错误", "上传失败!")
|
||||||
|
|
||||||
def SaveLog():
|
def SaveLog():
|
||||||
path = QtWidgets.QFileDialog.getSaveFileName(window, "")
|
path = QtWidgets.QFileDialog.getSaveFileName(window, "保存日志", get_home(), "txt文件(*.txt);;html 文件(*.html);;所有文件(*.*))")
|
||||||
if not path[1]:
|
if not path[1]:
|
||||||
return
|
return
|
||||||
print(path[0])
|
print(path)
|
||||||
try:
|
try:
|
||||||
with open(path[0], "w") as file:
|
with open(path[0], "w") as file:
|
||||||
|
if path[1] == "html 文件(*.html)":
|
||||||
|
file.write(returnText.toHtml())
|
||||||
|
else:
|
||||||
file.write(returnText.toPlainText())
|
file.write(returnText.toPlainText())
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
@ -2104,13 +2132,14 @@ updateThingsString = '''※1、容器自动配置脚本 GUI 查看介绍使用 Q
|
|||||||
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
※7、新增 Dll 名称查询功能,可以查询对应 Dll 的作用;
|
||||||
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
※8、支持静态获取可执行文件可以调用的 Dll 并提供解决方案;
|
||||||
※9、支持移除指定的 .desktop 快捷方式;
|
※9、支持移除指定的 .desktop 快捷方式;
|
||||||
10、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
※10、新增日志分析功能以及导出、上传日志功能;
|
||||||
11、优化文案、新增友链;
|
11、修复了不基于生态适配活动脚本打包器在选择 arm 打包架构下容器自动删除脚本取消勾选无用的问题;
|
||||||
12、提供了部分组件的测试功能。
|
12、优化文案、新增友链;
|
||||||
|
13、提供了部分组件的测试功能。
|
||||||
'''
|
'''
|
||||||
for i in information["Thank"]:
|
for i in information["Thank"]:
|
||||||
thankText += f"{i}\n"
|
thankText += f"{i}\n"
|
||||||
updateTime = "2022年11月23日"
|
updateTime = "2022年11月25日"
|
||||||
about = f'''<style>
|
about = f'''<style>
|
||||||
a:link, a:active {{
|
a:link, a:active {{
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
@ -2592,10 +2621,16 @@ s3.triggered.connect(lambda: webbrowser.open_new_tab("https://www.virustotal.com
|
|||||||
log = menu.addMenu(QtCore.QCoreApplication.translate("U", "日志(&L)"))
|
log = menu.addMenu(QtCore.QCoreApplication.translate("U", "日志(&L)"))
|
||||||
getDllInfo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询 Dll"))
|
getDllInfo = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询 Dll"))
|
||||||
checkLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "日志分析"))
|
checkLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "日志分析"))
|
||||||
|
saveLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "另存为日志"))
|
||||||
|
uploadLogText = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "上传日志"))
|
||||||
getDllInfo.triggered.connect(DllWindow.ShowWindow)
|
getDllInfo.triggered.connect(DllWindow.ShowWindow)
|
||||||
checkLogText.triggered.connect(LogChecking.ShowWindow)
|
checkLogText.triggered.connect(LogChecking.ShowWindow)
|
||||||
|
saveLogText.triggered.connect(SaveLog)
|
||||||
|
uploadLogText.triggered.connect(UploadLog)
|
||||||
log.addAction(getDllInfo)
|
log.addAction(getDllInfo)
|
||||||
log.addAction(checkLogText)
|
log.addAction(checkLogText)
|
||||||
|
log.addAction(saveLogText)
|
||||||
|
log.addAction(uploadLogText)
|
||||||
|
|
||||||
help = menu.addMenu(QtCore.QCoreApplication.translate("U", "帮助(&H)"))
|
help = menu.addMenu(QtCore.QCoreApplication.translate("U", "帮助(&H)"))
|
||||||
runStatusWebSize = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询程序在 Wine 的运行情况"))
|
runStatusWebSize = QtWidgets.QAction(QtCore.QCoreApplication.translate("U", "查询程序在 Wine 的运行情况"))
|
||||||
|
1
wine/winelist.json
Normal file
1
wine/winelist.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
[]
|
Loading…
Reference in New Issue
Block a user